如何在virtualenv中安排/组织python模块?

时间:2017-06-28 13:00:17

标签: python cron virtualenv airflow luigi

我开发了一些python模块并在virtualenv中运行它们。 我想安排这样的任务(并添加一些依赖项) 在特定时间运行。

例如: 我有一些像

这样的python模块
moduleA.py, moduleB.py, moduleC.py, moduleD.py 

他们的组织方式如下:

Project A
--------- moduleA.py
--------- moduleB.py
--------- moduleC.py

Project B
--------- moduleB.py
--------- moduleD.py

所以现在我希望项目A能够在virtualenv" projectA"中运行。 所以它应该与source /virtualenv/projectA/bin/active环境相关。 好。这可以通过Shell - Script来完成。 但是它应该启动moduleA.py,并在完成后从moduleB.py开始,依此类推。最后,环境可以停用。

此程序应重复到不同的时间和项目。 我不知道哪种方法是个不错的选择。 我读到了关于luigi,气流甚至是关于crontab的想法。 我想得到一些提示。

感谢。

1 个答案:

答案 0 :(得分:0)

正确的选择取决于您的确切用例。 Cron,airflow和luigi都可以用于此。如果你只有2个项目并且你没有预见到经常更改它们,那么由cron作业运行的简单bash脚本就足够了。 如果你需要错误处理,发送失败的电子邮件,用户界面等,那么luigi或airflow都可以。