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

Ответить
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

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

Сообщение 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.'}}
Что-то не так делаю или это просто не так работает?
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

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

Сообщение Timur »

Сейчас с сериалом реализован только get, action - так не работает.
Кстати, для удаления старых\забытых задач есть параметр:
http://cgru.info/afanasy/job#job_time_life
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

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

Сообщение Timur »

И такой же параметр есть у пользователя.
Как раз для тех, кто не удаляет свои старые задачи.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

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

Сообщение paulwinex »

Ясно, спасибо.
Мне не старые надо удалять, просто они имеют наименьший приоритет и могут не сразу стартовать, а по завершению надо грохать. Для надёжности хотел через sereal. Но я тут придумал альтернативу. Просто надо добавить некий рандом имя и потом по имени удалять. Тогда не промажу.
Кстати, может есть стандартный способ автоудаления джобы по завершению? Что-то никогда не искал такого, а тут бы подошло.
Аватара пользователя
Timur
Site Admin
Сообщения: 178
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

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

Сообщение Timur »

Есть event такой - JOB_DONE.
http://cgru.info/afanasy/server#events
Можно добавить свой methods - "delete" и обрабатывать этот свой метод в сервисе event.py.

А в принципе, неплохо было бы сделать параметр, типа time_life_done, чтоб сервер сам удалял выполненные задачи через некоторое время.
Тимур Хайрулин
CGRU 3.3.1 Ubuntu 22.04LTS, MS Windows 10 (clients only).
paulwinex
Сообщения: 83
Зарегистрирован: Пт июл 14, 2017 9:50 am

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

Сообщение paulwinex »

C ивентом тоже посмотрю вариант, спасибо.
Ответить