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

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

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

Сообщение paulwinex » Вт мар 26, 2019 11:17 am

Есть колбек который выполняется через значительное время после запуска задачи. Он должен удалить задачу. Чтобы он смог это сделать я ему предаю 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
Сообщения: 135
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

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

Сообщение Timur » Вт мар 26, 2019 12:19 pm

Сейчас с сериалом реализован только get, action - так не работает.
Кстати, для удаления старых\забытых задач есть параметр:
http://cgru.info/afanasy/job#job_time_life
Тимур Хайрулин
CGRU 2.3.1 Ubuntu 18.04LTS, MS Windows 7,10 (clients only).

Аватара пользователя
Timur
Site Admin
Сообщения: 135
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

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

Сообщение Timur » Вт мар 26, 2019 12:20 pm

И такой же параметр есть у пользователя.
Как раз для тех, кто не удаляет свои старые задачи.
Тимур Хайрулин
CGRU 2.3.1 Ubuntu 18.04LTS, MS Windows 7,10 (clients only).

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

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

Сообщение paulwinex » Вт мар 26, 2019 1:08 pm

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

Аватара пользователя
Timur
Site Admin
Сообщения: 135
Зарегистрирован: Вс июл 09, 2017 4:59 pm
Откуда: Королёв
Контактная информация:

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

Сообщение Timur » Вт мар 26, 2019 2:04 pm

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

А в принципе, неплохо было бы сделать параметр, типа time_life_done, чтоб сервер сам удалял выполненные задачи через некоторое время.
Тимур Хайрулин
CGRU 2.3.1 Ubuntu 18.04LTS, MS Windows 7,10 (clients only).

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

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

Сообщение paulwinex » Вт мар 26, 2019 3:13 pm

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

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость