我正在寻找一个Python的库,它将提供at和cron功能相似.
我非常喜欢使用纯Python解决方案,而不是依赖于盒子上安装的工具; 这样我就可以在没有cron的机器上运行.
对于那些不熟悉的人cron:您可以根据以下表达式安排任务:
0 2 * * 7 /usr/bin/run-backup # run the backups at 0200 on Every Sunday
0 9-17/2 * * 1-5 /usr/bin/purge-temps # run the purge temps command, every 2 hours between 9am and 5pm on Mondays to Fridays.
Run Code Online (Sandbox Code Playgroud)
cron时间表达式语法不那么重要,但我希望能有这种灵活性.
如果没有任何东西可以为我开箱即用,那么任何关于构建模块的建议都会感激不尽.
编辑 我对启动进程不感兴趣,只是用Python编写的"作业" - python函数.必要时我认为这将是一个不同的主题,但不是在一个不同的过程中.
为此,我正在寻找cron时间表达式的表现力,但在Python中.
Cron 已经存在多年了,但我试图尽可能地便携.我不能依赖它的存在.
通常,据说多线程程序是非确定性的,这意味着如果它崩溃,则几乎不可能重新创建导致该条件的错误.一个人真的不知道接下来会运行什么线程,以及它什么时候会再次被抢占.
当然这与操作系统线程调度算法有关,而且事实上人们不知道接下来要运行什么线程,以及它将有效运行多长时间.程序执行顺序也起到了作用,等等......
但是如果你有用于线程调度的算法怎么办?如果你知道什么线程正在运行,那么多线程程序是否会变成"确定性",就像在,你将能够重现崩溃?
我正在尝试编写一个每1分钟读取一次变量的函数,并返回每次的值.变量名是proc:
proc = subprocess.Popen(['sshpass', '-p', password, 'rsync', '-avz', '--info=progress2', source12, destination],
stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]
Run Code Online (Sandbox Code Playgroud)
进度存储在proc变量中.我希望函数每1分钟轮询一次变量并返回值.这样做直到变量执行时为止.最好的方法是什么?
尝试使用:
def doWork():
while True:
proc = subprocess.Popen(['sshpass', '-p', password, 'rsync', '-avz', '--info=progress2', source12, destination],
stderr=subprocess.PIPE, stdout=subprocess.PIPE).communicate()[0]stdout=subprocess.PIPE).communicate()[0]
data = sort(proc)
print data
time.sleep(10)
Run Code Online (Sandbox Code Playgroud)
虽然没有运气!它同时打印整个进度并循环.