如何将Python包作为预定的守护程序作业运行?

时间:2017-01-26 06:57:04

标签: python linux macos cron daemon

我创建了一个Python包,并在PyPI上发布,比如说spamandeggs。该软件包是跨平台的(Windows,GNU / Linux,MacOSX),旨在定期更新用户(比如说每5分钟一次)。可以通过命令spamtheeggs从命令行运行该程序包。

以下是我面临的问题:

问题01 :如何守护通过spamtheeggs命令运行的脚本?

问题 :在this回答后,我尝试在我的脚本中使用schedule。这适用于调度,但执行不会被守护。终端忙于整个过程 我想知道一种守护Python包的方法。

问题02 :如何将命令添加为计划执行的cron作业?

解决方案01 :执行此操作的一种方法是编写描述该过程的安装指南(使用crontab -e编辑crontab等)。 缺点:没有吸引力。

解决方案02 :作为软件包的作者,我希望能够将此命令添加到用户的crontab中(显然是在获得用户的确认之后)。

选项:

  1. 编写一个Python脚本来安排另一个脚本(这是否可能?)
  2. 使用也可以进行守护的任务计划程序。
  3. 我想知道哪个选项适合(如果有的话)以及如何处理它们的任何提示。

    到目前为止我读过的资源清单:

    注意:如果解决方案适用于所有3个平台,我将不胜感激 P.S:这是我第一次尝试cron和daemon的工作。

1 个答案:

答案 0 :(得分:1)

public function destroy($id) { $post = Post::where('id', $id)->first(); if($post && $post->user_id == \Auth::user()->id){ $post->delete(); return view('/home'); }else{ abort(404); } } 包可以帮助您,它有两种模式:

daemon.DaemonContext没有文档,但我找到了一些可能对您有帮助的代码http://www.programcreek.com/python/example/10392/daemon.DaemonContext