我想永远每60秒在Python中重复执行一个函数(就像目标C中的NSTimer一样).这段代码将作为守护进程运行,实际上就像使用cron每分钟调用python脚本一样,但不需要用户设置.
在这个关于用Python实现的cron的问题中,解决方案似乎实际上只是sleep() x秒.我不需要这样的高级功能,所以也许这样的东西可行
while True:
# Code executed here
time.sleep(60)
Run Code Online (Sandbox Code Playgroud)
这段代码有可预见的问题吗?
我正在尝试安排重复事件在Python 3中每分钟运行一次.
我见过上课,sched.scheduler但我想知道是否还有其他方法可以做到.我听说提到我可以使用多个线程,我不介意这样做.
我基本上要求一些JSON,然后解析它; 它的价值随着时间而变化.
要使用sched.scheduler我必须创建一个循环来请求它安排甚至运行一小时:
scheduler = sched.scheduler(time.time, time.sleep)
# Schedule the event. THIS IS UGLY!
for i in range(60):
scheduler.enter(3600 * i, 1, query_rate_limit, ())
scheduler.run()
Run Code Online (Sandbox Code Playgroud)
有什么其他方法可以做到这一点?
可能重复:
对Python中的Cron调度程序的建议?
安排函数作为后台任务定期运行的最pythonic方法是什么?有一些想法在这里,但他们似乎都比较难看我.而且不完整.
java Timer类有一个非常完整的解决方案.有人知道类似的python类吗?
我想写一个简单的python脚本来完成一项特定的工作.我从网站上得到一些时间和链接信息.
times=
[
('17.04.2011', '06:41:44', 'abc.php?xxx'),
('17.04.2011', '07:21:31', 'abc.php?yyy'),
('17.04.2011', '07:33:04', 'abc.php?zzz'),
('17.04.2011', '07:41:23', 'abc.php?www'),]
Run Code Online (Sandbox Code Playgroud)
在合适的时间点击这些链接的最佳方式是什么?我是否需要计算当前列表和列表中的时间间隔并暂停一段时间?
我现在真的陷入困境,对任何可能有用的想法持开放态度.
我正在寻找围绕cron的包装器.
我偶然发现了PyCron,但它是一个Python实现,而不是包装器.
你知道任何好的cron Python包装器吗?
如果没有,你是否测试过PyCron,你能说些什么呢?
//编辑(作为评论的答案,要求更多细节):
我正在寻找以pythonic方式设置cron工作的东西,例如:
>>> job = CronJob(call_back)
>>> job.schedule(datetime, repeat)
>>> job.schedule(datetime2, repeat2)
Run Code Online (Sandbox Code Playgroud)
我可以用这种方式编辑电流:
>>> jobs = loadFromCron()
>>> jobs[0].shedule().schedule(datetime, repeat)
>>> print(jobs[0])
<CronJob object - "call_back" at 2009-11-01>
Run Code Online (Sandbox Code Playgroud)
理想情况下,这将在linux下的"crontab"中写入和读取,并在windows下使用"planified tasks".
我可能使用了错误的术语,谈论cron Python API更准确吗?
我有一个程序(temptrack),我需要每隔x分钟下载x天数的天气数据.我已经弄清楚如何使用每x分钟下载time.sleep(x*60),但我不知道如何重复这个过程一段时间.
更新:感谢所有发布解决方案的人.我使用"datetime.datetime.now()+ datetime.timedelta(hours = x)"作为最佳答案标记了这个例子,因为我能理解它最好,看起来它对我的目的非常有用.
我正在尝试创建一个函数(例如def startTime()),该函数执行另一个函数def runFunc(),该函数每天在上午 10 点使用 python 脚本开始执行,并在下午 12:30 自动停止(或脚本结束)。
例子: startTime(start_time, stop_time,runFunc)
任何人都可以帮助我吗?
我试图安排startTime从上午 10 点到下午 12:30。
import threading
import schedule
import time
def runFunc(interval, innerFunc, iterations = 0):
if iterations != 1:
threading.Timer (interval,runFunc, [interval, innerFunc , 0 ]).start ()
innerFunc ()
def A():
print "Hello World- A"
def B():
print "Hello World- B"
Run Code Online (Sandbox Code Playgroud)
我试过这个但没有用:
def startTime(job):
schedule.every().day.at("10:00").do(job)
while True:
schedule.run_pending()
startTime(runFunc(60,A))
startTime(runFunc(300,B))
Run Code Online (Sandbox Code Playgroud)
runFunc(60,A) 运行良好,但无法在上午 10 点到下午 12:30 之间安排 runFunc。
其它的办法
from …Run Code Online (Sandbox Code Playgroud) 我正在尝试在创建和配置网络应用程序后添加网络作业。但 webjobs 选项卡被禁用

我有一个在循环内运行的函数for。我的目标是每天在特定时间运行它,例如上午 10 点。
我的代码是:
def get_sql_backup_transfer(ip, folder,path_sec_folder,sec_folder,path):
call(["robocopy",f'{ip}\\{folder}', f'{path_sec_folder}{sec_folder}',"/tee","/r:5","/w:120","/S","/MIR",f"/LOG:{path}{sec_folder}.log"])
for i in sqlserverList :
get_sql_backup_transfer(i['ip'] , i['folder'] , path_sec_folder ,i['sec_folder'] , path )
Run Code Online (Sandbox Code Playgroud)
如何每天上午 10 点自动运行此代码?
我有ssh的python脚本,它有助于使用paramiko模块在远程服务器上运行各种Linux命令.所有输出都保存在文本文件中,脚本运行正常.现在我想每天上午11点和下午5点自动运行这些脚本两次.
如何在给定时间每天自动运行这些脚本,而无需每次手动编译.有没有软件或模块.
谢谢你的帮助.
我有一个功能可以不断从实时流中捕获数据。我想运行这段代码 30 分钟。