相关疑难解决方法(0)

如何在Python中获得类似Cron的调度程序?

我正在寻找一个Python的库,它将提供atcron功能相似.

我非常喜欢使用纯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 已经存在多年了,但我试图尽可能地便携.我不能依赖它的存在.

python cron scheduled-tasks

312
推荐指数
12
解决办法
23万
查看次数

多线程程序能否具有确定性?

通常,据说多线程程序是非确定性的,这意味着如果它崩溃,则几乎不可能重新创建导致该条件的错误.一个人真的不知道接下来会运行什么线程,以及它什么时候会再次被抢占.

当然这与操作系统线程调度算法有关,而且事实上人们不知道接下来要运行什么线程,以及它将有效运行多长时间.程序执行顺序也起到了作用,等等......

但是如果你有用于线程调度的算法怎么办?如果你知道什么线程正在运行,那么多线程程序是否会变成"确定性",就像在,你将能够重现崩溃?

multithreading non-deterministic

8
推荐指数
2
解决办法
4485
查看次数

如何在Python中编写轮询函数?

我正在尝试编写一个每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)

虽然没有运气!它同时打印整个进度并循环.

python polling

6
推荐指数
1
解决办法
1万
查看次数