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

Я хочу гарантировать, что задача не находится в очереди задач более одного раза, поэтому я генерирую уникальное имя на основе ее полезной нагрузки. Но это название задачи зарезервировано на срок до 7 дней, чего я не хочу; Я хочу, чтобы он был зарезервирован только на время, пока задача стоит в очереди; его можно было бы немедленно повторно поставить в очередь.

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

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


person antony.trupe    schedule 13.05.2010    source источник


Ответы (1)


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

person Nick Johnson    schedule 13.05.2010
comment
У Ника есть пример вычисления имени задачи, которое включает интервал времени здесь (хотя в Python эту концепцию будет легко реализовать и в Java). - person David Underhill; 13.05.2010
comment
Я получаю решение, применимое к моей ситуации, но я не вижу, чем использование задач для периодических обновлений отличается от использования задания cron. - person antony.trupe; 14.05.2010
comment
Я завидую, что в python вам разрешено использовать тире в именах задач. - person antony.trupe; 14.05.2010
comment
@antony Потому что вы можете планировать задания во время выполнения, а не предварительно указывать их в файле конфигурации во время разработки. Также нет необходимости планировать задания на интервалы, в которых, как вы знаете, не будет работы, требующей выполнения. - person Nick Johnson; 14.05.2010
comment
попался вы должны включить ссылку на пост в свой ответ. еще раз спасибо. - person antony.trupe; 14.05.2010