任何人都可以帮助我获取以下条件的代码...
我想每2秒和3秒运行一次job1和job2, job1和job2应该一天@ 9:30am开始..应该停止@ 17:30pm ...! job3 @每天下午17:31一次。.
df3 = df1.merge(df2, how='left', indicator=True).query('_merge == "left_only"')[df1.columns]
df = pd.concat([df2, df3], ignore_index=True)
答案 0 :(得分:0)
您可以将其包装到函数中,并在预定的时间内使用调度程序启动它
schedule.every(2).seconds.do(job1) #For Every 2 seconds
schedule.every(5).seconds.do(job2) #For Every 3 Seconds
您可以根据需要取消作业。因此,您将有2个额外的工作可以启动和停止其他工作。
答案 1 :(得分:0)
可能不是执行此操作的最佳方法,但是这样的方法应该可以工作。 (您显然可以将if语句扩展为仅包含工作日/不包括假期等。)
import datetime
import time
def job_a():
print('a')
def job_b():
print('b')
def job_3():
print('3')
start_a = datetime.datetime.now()
wait_time_a = 2
start_b = datetime.datetime.now()
wait_time_b = 5
start_time = 9.30
end_time = 17.31
do_job_3 = False
while True:
while datetime.datetime.now().hour + datetime.datetime.now().minute/100. > start_time \
and datetime.datetime.now().hour + datetime.datetime.now().minute/100. < end_time:
do_job_3 = True
if (datetime.datetime.now() - start_a).seconds > wait_time_a:
job_a()
start_a += datetime.timedelta(seconds=wait_time_a)
if (datetime.datetime.now() - start_b).seconds > wait_time_b:
job_b()
start_b += datetime.timedelta(seconds=wait_time_b)
time.sleep(1)
if do_job_3:
do_job_3 = False
job_3()
time.sleep(1)