如何正确地杀死库伯奈茨环境中容器上运行的芹菜任务?整个应用程序的结构(全部是用Python编写的)如下:
假设我们调用一个SDK方法,该方法反过来向API发出请求,该API触发在芹菜容器上运行的任务。如果需要的话,怎样才能正确地/优雅地完成这项任务呢?我知道芹菜任务有一个revoke()
方法,但是我尝试了使用这种方法,但它没有起作用,甚至使用terminate=True
和signal=signal.SIGKILL
(也许这与我使用Azure作为中介这一事实有关?)
也许芹菜任务与其相应的容器名称之间的映射会有所帮助,但我也找不到获取这些信息的方法。
任何帮助和/或想法都将不胜感激。
发布于 2021-03-30 05:32:15
我找到的解决方案是将文件写入API和芹菜容器共享的文件。在此文件中,每当捕获中断时,就会将标志设置为true
。在芹菜容器里,我会定期检查这些文件的内容。如果标志被设置为true
,那么我会优雅地清除并引发一个错误。
https://stackoverflow.com/questions/66799974
复制相似问题