セロリを使用したソフトウェア アップグレード システムに取り組んでいます。きれいに実装するのに苦労しているユースケースがあります。ここに私の仕事があります:
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(デバイス 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
純粋な python では、device_software_updates の実装は次のようになります。
def device_software_updates(device_id):
return software_updates(installed_device_software(device_id),
latest_device_software(device_id))
Celery 3.0 でこれを実装する最もクリーンな方法は何ですか? グループを使って何かしたい。私の現在の実装は次のようになります。
def device_software_updates(device_id):
return (
group(installed_device_software.s(device_id),
latest_device_software.s(device_id)) |
software_updates.s()
)()
残念ながら、これは、software_updates の argspec がsoftware_updates(arg_list)
理想的ではないことを意味します。