Страница 1 из 1

Удаление задачи по serial

Добавлено: Вт мар 26, 2019 11:17 am
paulwinex
Есть колбек который выполняется через значительное время после запуска задачи. Он должен удалить задачу. Чтобы он смог это сделать я ему предаю ID задачи.
Проблема в том что этот ID может поменяться пока вызовется колбек, так как он не постоянен. Поэтому я колбеку передаю SERIAL.
Далее, по аналогии с функцией deleteJobById я пытаюсь удалить джобу по serial. Вместо строки

Код: Выделить всё

self.data['ids'] = [jobId]
я пишу

Код: Выделить всё

self.data['serials'] = [serial]
Полный код

Код: Выделить всё

cmd = af.Cmd()
cmd.action = 'action'
cmd.data['type'] = 'jobs'
cmd.data['serials'] = [serial]
cmd.data['operation'] = {'type': 'delete'}
cmd._sendRequest()
Получаю ошибку

Код: Выделить всё

{'info': {'kind': 'error', 'text': 'Invalid action.'}}
Что-то не так делаю или это просто не так работает?

Re: Удаление задачи по serial

Добавлено: Вт мар 26, 2019 12:19 pm
Timur
Сейчас с сериалом реализован только get, action - так не работает.
Кстати, для удаления старых\забытых задач есть параметр:
http://cgru.info/afanasy/job#job_time_life

Re: Удаление задачи по serial

Добавлено: Вт мар 26, 2019 12:20 pm
Timur
И такой же параметр есть у пользователя.
Как раз для тех, кто не удаляет свои старые задачи.

Re: Удаление задачи по serial

Добавлено: Вт мар 26, 2019 1:08 pm
paulwinex
Ясно, спасибо.
Мне не старые надо удалять, просто они имеют наименьший приоритет и могут не сразу стартовать, а по завершению надо грохать. Для надёжности хотел через sereal. Но я тут придумал альтернативу. Просто надо добавить некий рандом имя и потом по имени удалять. Тогда не промажу.
Кстати, может есть стандартный способ автоудаления джобы по завершению? Что-то никогда не искал такого, а тут бы подошло.

Re: Удаление задачи по serial

Добавлено: Вт мар 26, 2019 2:04 pm
Timur
Есть event такой - JOB_DONE.
http://cgru.info/afanasy/server#events
Можно добавить свой methods - "delete" и обрабатывать этот свой метод в сервисе event.py.

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

Re: Удаление задачи по serial

Добавлено: Вт мар 26, 2019 3:13 pm
paulwinex
C ивентом тоже посмотрю вариант, спасибо.