2016-07-14 3 views
0

Каждый раз, когда сельдерей перезапускается, все запланированные задания снова подтверждаются.Каждый раз, когда сельдерей перезапускается, все запланированные задания подтверждены

И это приводит к огромному времени, чтобы начать обработку новых задач.

Как мы можем решить это?

ответ

0

Вы можете просто очистить все задачи перед повторным включением сельдерей:

$ celery purge 
WARNING: This will remove all tasks from queue: celery. 
     There is no undo for this operation! 

(to skip this prompt use the -f option) 

Are you sure you want to delete all tasks (yes/NO)? 
+0

Нет, я не хочу, чтобы очистить задачи. я просто сельдерей, чтобы перезагрузить новый код, не перезагружая все задачи – harshatba

0

Если вы не хотите, чтобы очистить те задачи, которые были в очереди ожидания должны быть выполнены т.е., вы также хотите их для выполнения, то, очевидно, те старые задачи будут выполнены перед новыми задачами, поскольку новые задачи появились в QUEUE после старых. И поскольку это QUEUE, он будет следовать First In First Out.

Теперь, если вы хотите старых задач выполнить но не хочет ждать для старых, чтобы выполнить первое, от чего я постигнуть не желая, чтобы очистить старые а также не желая задержки, то вы можете поддерживать две или более отдельных очереди для задач.

Следовательно, при каждой перезагрузке ваши новые задачи будут назначены новому QUEUE, который не будет зависеть от старых задач.

Смотреть это ->How to keep multiple independent celery queues?

Смежные вопросы