Estoy trabajando en un sistema de actualización de software con apio. Tengo un caso de uso que estoy luchando por implementar de forma limpia. Aquí están mis trabajos:Combinación de resultados de trabajo en apio
device_software_updates (device_id)
returns a list of software updates that need to be installed on a device
installed_device_software (device_id)
returns the software modules that are currently installed on a device
latest_device_software (device_id)
returns the latest software versions available for a device
software_updates (installed_software, latest_software)
returns the latest software modules that are not installed
en Python puro, la implementación de device_software_updates puede tener un aspecto como
def device_software_updates(device_id):
return software_updates(installed_device_software(device_id),
latest_device_software(device_id))
¿Cuál es la forma más limpia de implementar esto en Apio 3.0? Me gustaría hacer algo usando grupos. Mi implementación actual se parece a esto:
def device_software_updates(device_id):
return (
group(installed_device_software.s(device_id),
latest_device_software.s(device_id)) |
software_updates.s()
)()
Desafortunadamente, esto significa que el argspec de software_updates es software_updates(arg_list)
que no es ideal.
Nunca se debe llame a result.get() desde el interior de la tarea, puede obtener un punto muerto. http://celery.readthedocs.org/en/latest/_modules/celery/result.html. – rajat
@rajat ¿podría darnos un ejemplo correcto? – guival