[英]Python Creating Recurrence Events
Im unable to create recurrence python events after every user defined hour in a day.在一天中每个用户定义的小时后,我无法创建重复的 python 事件。 Recurrence only returns me 1 event not after every defined hour.
Recurrence 仅在每个定义的小时后返回我 1 个事件。
eg If I want to create a job of cleaning after every 2 hour in system.例如,如果我想在系统中每 2 小时创建一次清洁工作。 so if current hour is 13, events should create for these hours 15, 17, 19, 21, 23. but my code create only 1 job for a day.
因此,如果当前时间为 13,则应在 15、17、19、21、23 小时创建事件。但我的代码一天只创建 1 个工作。
start_date = datetime.now().date()
end_date = start_date
start_date = datetime.combine(start_date, time())
end_date = datetime.combine(end_date, time())
let suppose start hour would be 13th.假设开始时间是 13 号。
start_hour = 13
interval = 2 # after two hours.
by_hours = tuple(hour for hour in range(start_hour +
interval, 24, interval))
rule = recurrence.Rule(freq=4, # 4 use for Hourly freq. in recurrence.
until=end_date, byhour=by_hours)
pattern = recurrence.Recurrence(dtstart=start_date,
rrules=(rule,),
dtend=end_date)
for event in pattern.occurrences():
print(event) # only 1 event prints, need 4 events as per requirement.
The prime culprit in your code was time, your start_date and end_date has the same time which was hours=0, minutes=0.您的代码中的罪魁祸首是时间,您的 start_date 和 end_date 具有相同的时间,即小时 = 0,分钟 = 0。 That was causing the problem to generate occurrence.
这导致问题发生。 The below code is working fine according to your need.
下面的代码可以根据您的需要正常工作。 Please created start_date according to starting hours and in end_date define the last hour of the day.
请根据开始时间创建 start_date,并在 end_date 中定义一天中的最后一小时。
from datetime import datetime, time, timedelta
start_date = datetime.now().date()
end_date = start_date
start_date = datetime.combine(start_date, time())
start_date = start_date + timedelta(hours=13)
end_date = datetime.combine(end_date, time())
end_date = end_date + timedelta(hours=23, minutes=59)
rule = recurrence.Rule(freq=HOURLY, until=end_date, interval=2, dtstart=start_date)
pattern = recurrence.Recurrence(dtstart=start_date,
rrules=(rule,), dtend=end_date)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.