我正在尝试为我的应用程序创建某种管道。我有一个问题 - 应用程序的主要目标是阅读视频,拍摄每张n -hote of Video,然后将其放入管道中。管道内部有5个不同的任务,例如:
1. Crop image
2. Store image in the array. if array length = IMAGES_NEEDED_FOR_TASK3, launch task 3
3. Apply some transforms to image, make one big image from IMAGES_NEEDED_FOR_TASK3,.
4. Stack transformed images in the array. if array length = IMAGES_NEEDED_FOR_TASK5, launch task 5
5. Write info about income images from task 4 to database
我在任务2和4的实施方面挣扎,因为它们有条件。如果他们没有条件,我只会使用链方法。我考虑过从任务2调用任务3(我认为为每个任务创建一个不同的队列(,但我读到这被认为是不良练习。预先感谢
用芹菜工作流(如果那是您正在挣扎的话(非常困难,所以我建议您写任务4当堆栈具有images_needed_for_task5图像时(只需调用app.send_task((或app.apply_async(((。
任务#2也是如此。只要您不需要处理任务3和5的结果,您就可以了,在这种情况下,逻辑变得更加复杂。如果芹菜有一个原始的,可以更轻松地表达这样的案例,那真的很好。
如果您仍然坚持使用芹菜工作流程,则应该重新考虑逻辑,并利用块原始性。在这种情况下,您的任务#2将add.chunks()
。任务5。