Используйте beanstalkd, для периодических задач, как всегда сделать работу, замененную ее последней? - PullRequest
1 голос
/ 12 октября 2010

Я пытаюсь использовать beanstalk для постановки в очередь большого количества периодических задач (например, задачи нужно обрабатывать каждые N минут), для каждой задачи, если последнее заданное в очереди задание не выполнено (не зарезервировано, я имею в виду), когда текущеедобавляемое задание, последнее заданное в очереди задание должно быть заменено текущим заданием, другими словами, должна обрабатываться только самое последнее заданное в очереди задание.

как мне добиться этого с помощью beanstalk?

Идеи, которые у меня есть сейчас: для каждой задачи используйте memcached, сохраняйте свои последние метки времени (установите это, когда добавляете задания в очередь), каждый раз, когда работник успешно зарезервировал задание, он сначала проверяет метки времени для этой задачи в memcached, есливременные метки задания такие же, как временные метки в memcached, затем обработайте это задание, в противном случае пропустите это задание и удалите его из очереди.

Так есть ли лучшие способы сделать такую ​​работу?Пожалуйста, дайте ваши предложения, спасибо.

Ответы [ 2 ]

2 голосов
/ 16 мая 2012

Я нашел комбинацию memcache / beanstalk также лучшим решением для реализации, где я не хотел, чтобы новая, но идентичная работа входила в очередь.

1 голос
/ 09 января 2011

Пока ' именные задания ' не выполнены и программное обеспечение не выпущено, это может быть одним из лучших решений.

...