Рейтинг:1

Queue API — запустить функцию после завершения очереди?

флаг be

Я создал пользовательскую очередь, которая импортирует объекты из внешнего API. Во время каждого процесса элемента очереди я хочу сохранить идентификатор созданного/обновленного объекта, а в конце очереди я хочу использовать эти идентификаторы, чтобы определить, какие объекты больше не должны существовать и должны быть удалены.

Есть ли способ запустить функцию в конце очереди? И если да, то как я могу сохранить нужные мне идентификаторы и передать их этой функции?

Если я думаю об этом неправильно, пожалуйста, дайте мне знать, если есть другой способ!

флаг in
Любая причина, по которой вы не можете сделать это удаление в конце каждого элемента очереди? Почему они должны происходить после элементов очереди? Кроме того, у работников очереди есть ограничение по времени. Если по какой-то причине ваш процесс очереди замедлится и достигнет этого ограничения, вы в конечном итоге обработаете меньше элементов. Если вам нужно гарантировать, что все элементы будут обработаны до выполнения этой операции после очереди, очереди могут быть не решением.
флаг cn
Насколько я знаю, Queue API не имеет обратного вызова Finish. Но пакетный API, построенный поверх Queue API, имеет обратный вызов Finish. Вы можете проверить реализацию Queue API, возможно, вы найдете там решения. С другой стороны — один трюк, который я сделал — при построении очереди — я добавил последний элемент в очередь с «завершающими» задачами. Это ненадежно, и нет гарантии, что «последний» элемент в очереди будет выполнен последним, но отправки писем достаточно.
apaderno avatar
флаг us
Нет, пакетный API не создан поверх API очереди.
apaderno avatar
флаг us
Какие сущности нужно удалить? Поскольку вы их импортируете, я сомневаюсь, что вам нужно удалить их все. Каковы именно критерии для их удаления?
Chris avatar
флаг be
По сути, если запись не существует в API, ее следует удалить. Итак, я подумал о том, чтобы сформировать массив созданных/обновленных идентификаторов, а затем удалить все существующие узлы, которых нет в массиве.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.