Comments (11)
This already works, or was fixed at some point. You can do:
schedule.every().hour.at(':00').do(job)
@dbader Please close this issue.
from schedule.
Try this:
schedule.every().hour.at('00:00').do(job)
It's the same syntax as for performing a task at the specified time each day, but the hour component will be ignored.
from schedule.
But with the hour component ignored, won't it only be executed at 00:00?
from schedule.
Sorry, I meant the hour component in the 'at' clause. It will ignore that value since it only applies to every().day
, and just use the minute; so for example every().hour.at('00:30')
will execute the job every half hour, and should be identical to every().hour.at('23:00')
.
I think this is a little quirky, and it would work a lot better with a specialized at
statement, so for every day you could have: every().day.at_time('11:45')
(basically the current functionality of at
), or if you want it to run at a certain minute every hour it could instead be every().hour.at_minute('30')
. This would also make it easier to add support for seconds in at
, of which I'm a fan.
from schedule.
@dylwhich at_time() is not work.
schedule.every().day.at_time("22:37").do(daily_task)
TypeError: 'NoneType' object is not callable
from schedule.
Sorry, I should have been more clear; the second paragraph of my comment is a theoretical description of how it could be changed to work a bit more flexibly/clearly. every().day.at("22:37").do(daily_task)
should currently work as expected though.
from schedule.
If my PR gets approved, it will throw an assertion error if you try to do schedule.every().hour.at('00:00').do(job)
, it will suggest you do schedule.every().hour.at(':00').do(job)
instead.
from schedule.
@dgrant I would like to execute my job every hour ad xx:45.
If I try schedule.every().hour.at(':45').do(make_prediction, p, log_file)
, it does not work.
I can execute the job only once time at 45.
Can you help me?
from schedule.
This does not work, @dgrant.
Here's my output:
Mon Jul 9 15:00:56 2018
Mon Jul 9 16:00:57 2018
Mon Jul 9 17:04:01 2018
Mon Jul 9 18:04:58 2018
Here's the code that did this, modified, but the main ingredients are here:
import schedule
import time
def do_something():
# some work here
pass
def print_time():
print(time.asctime())
time.sleep(100)
schedule.every().hour.do(do_something)
schedule.every().hour.at(':00').do(print_time)
while True:
schedule.run_pending()
time.sleep(60)
from schedule.
I've seen this use case requested a few times here (e.g. #144) but no solution has been provided. Quite a common use case. I really hope we get something reliable.
from schedule.
Let's take a closer look at the example provided by @rokcarl and investigate further. I've taken the following snippet:
import schedule
import time
def job():
print("job", time.asctime())
time.sleep(100)
schedule.every().hour.at(':00').do(job)
while True:
print("run_pending", time.asctime())
schedule.run_pending()
time.sleep(60)
and let it ran for a few ours. It gave the following output:
Click here to expand.
run_pending Sat Nov 21 13:16:16 2020
run_pending Sat Nov 21 13:17:16 2020
run_pending Sat Nov 21 13:18:17 2020
run_pending Sat Nov 21 13:19:17 2020
run_pending Sat Nov 21 13:20:17 2020
run_pending Sat Nov 21 13:21:17 2020
run_pending Sat Nov 21 13:22:17 2020
run_pending Sat Nov 21 13:23:17 2020
run_pending Sat Nov 21 13:24:17 2020
run_pending Sat Nov 21 13:25:17 2020
run_pending Sat Nov 21 13:26:17 2020
run_pending Sat Nov 21 13:27:17 2020
run_pending Sat Nov 21 13:28:17 2020
run_pending Sat Nov 21 13:29:17 2020
run_pending Sat Nov 21 13:30:17 2020
run_pending Sat Nov 21 13:31:17 2020
run_pending Sat Nov 21 13:32:17 2020
run_pending Sat Nov 21 13:33:17 2020
run_pending Sat Nov 21 13:34:17 2020
run_pending Sat Nov 21 13:35:17 2020
run_pending Sat Nov 21 13:36:17 2020
run_pending Sat Nov 21 13:37:17 2020
run_pending Sat Nov 21 13:38:17 2020
run_pending Sat Nov 21 13:39:17 2020
run_pending Sat Nov 21 13:40:18 2020
run_pending Sat Nov 21 13:41:18 2020
run_pending Sat Nov 21 13:42:18 2020
run_pending Sat Nov 21 13:43:18 2020
run_pending Sat Nov 21 13:44:18 2020
run_pending Sat Nov 21 13:45:18 2020
run_pending Sat Nov 21 13:46:18 2020
run_pending Sat Nov 21 13:47:18 2020
run_pending Sat Nov 21 13:48:18 2020
run_pending Sat Nov 21 13:49:18 2020
run_pending Sat Nov 21 13:50:18 2020
run_pending Sat Nov 21 13:51:18 2020
run_pending Sat Nov 21 13:52:18 2020
run_pending Sat Nov 21 13:53:18 2020
run_pending Sat Nov 21 13:54:18 2020
run_pending Sat Nov 21 13:55:18 2020
run_pending Sat Nov 21 13:56:18 2020
run_pending Sat Nov 21 13:57:18 2020
run_pending Sat Nov 21 13:58:18 2020
run_pending Sat Nov 21 13:59:18 2020
run_pending Sat Nov 21 14:00:18 2020
job Sat Nov 21 14:00:18 2020
run_pending Sat Nov 21 14:02:59 2020
run_pending Sat Nov 21 14:03:59 2020
run_pending Sat Nov 21 14:04:59 2020
run_pending Sat Nov 21 14:05:59 2020
run_pending Sat Nov 21 14:06:59 2020
run_pending Sat Nov 21 14:07:59 2020
run_pending Sat Nov 21 14:08:59 2020
run_pending Sat Nov 21 14:09:59 2020
run_pending Sat Nov 21 14:10:59 2020
run_pending Sat Nov 21 14:11:59 2020
run_pending Sat Nov 21 14:12:59 2020
run_pending Sat Nov 21 14:13:59 2020
run_pending Sat Nov 21 14:14:59 2020
run_pending Sat Nov 21 14:15:59 2020
run_pending Sat Nov 21 14:16:59 2020
run_pending Sat Nov 21 14:17:59 2020
run_pending Sat Nov 21 14:18:59 2020
run_pending Sat Nov 21 14:19:59 2020
run_pending Sat Nov 21 14:20:59 2020
run_pending Sat Nov 21 14:22:00 2020
run_pending Sat Nov 21 14:23:00 2020
run_pending Sat Nov 21 14:24:00 2020
run_pending Sat Nov 21 14:25:00 2020
run_pending Sat Nov 21 14:26:00 2020
run_pending Sat Nov 21 14:27:00 2020
run_pending Sat Nov 21 14:28:00 2020
run_pending Sat Nov 21 14:29:00 2020
run_pending Sat Nov 21 14:30:00 2020
run_pending Sat Nov 21 14:31:00 2020
run_pending Sat Nov 21 14:32:00 2020
run_pending Sat Nov 21 14:33:00 2020
run_pending Sat Nov 21 14:34:00 2020
run_pending Sat Nov 21 14:35:00 2020
run_pending Sat Nov 21 14:36:00 2020
run_pending Sat Nov 21 14:37:00 2020
run_pending Sat Nov 21 14:38:00 2020
run_pending Sat Nov 21 14:39:00 2020
run_pending Sat Nov 21 14:40:00 2020
run_pending Sat Nov 21 14:41:00 2020
run_pending Sat Nov 21 14:42:00 2020
run_pending Sat Nov 21 14:43:00 2020
run_pending Sat Nov 21 14:44:01 2020
run_pending Sat Nov 21 14:45:01 2020
run_pending Sat Nov 21 14:46:01 2020
run_pending Sat Nov 21 14:47:01 2020
run_pending Sat Nov 21 14:48:01 2020
run_pending Sat Nov 21 14:49:01 2020
run_pending Sat Nov 21 14:50:01 2020
run_pending Sat Nov 21 14:51:01 2020
run_pending Sat Nov 21 14:52:01 2020
run_pending Sat Nov 21 14:53:01 2020
run_pending Sat Nov 21 14:54:01 2020
run_pending Sat Nov 21 14:55:01 2020
run_pending Sat Nov 21 14:56:01 2020
run_pending Sat Nov 21 14:57:01 2020
run_pending Sat Nov 21 14:58:01 2020
run_pending Sat Nov 21 14:59:01 2020
run_pending Sat Nov 21 15:00:01 2020
job Sat Nov 21 15:00:01 2020
run_pending Sat Nov 21 15:02:41 2020
run_pending Sat Nov 21 15:03:41 2020
run_pending Sat Nov 21 15:04:42 2020
run_pending Sat Nov 21 15:05:42 2020
run_pending Sat Nov 21 15:06:42 2020
run_pending Sat Nov 21 15:07:42 2020
run_pending Sat Nov 21 15:08:42 2020
run_pending Sat Nov 21 15:09:42 2020
run_pending Sat Nov 21 15:10:42 2020
run_pending Sat Nov 21 15:11:42 2020
run_pending Sat Nov 21 15:12:42 2020
run_pending Sat Nov 21 15:13:42 2020
run_pending Sat Nov 21 15:14:42 2020
run_pending Sat Nov 21 15:15:42 2020
run_pending Sat Nov 21 15:16:42 2020
run_pending Sat Nov 21 15:17:42 2020
run_pending Sat Nov 21 15:18:42 2020
run_pending Sat Nov 21 15:19:42 2020
run_pending Sat Nov 21 15:20:42 2020
run_pending Sat Nov 21 15:21:42 2020
run_pending Sat Nov 21 15:22:42 2020
run_pending Sat Nov 21 15:23:42 2020
run_pending Sat Nov 21 15:24:42 2020
run_pending Sat Nov 21 15:25:42 2020
run_pending Sat Nov 21 15:26:43 2020
run_pending Sat Nov 21 15:27:43 2020
run_pending Sat Nov 21 15:28:43 2020
run_pending Sat Nov 21 15:29:43 2020
run_pending Sat Nov 21 15:30:43 2020
run_pending Sat Nov 21 15:31:43 2020
run_pending Sat Nov 21 15:32:43 2020
run_pending Sat Nov 21 15:33:43 2020
run_pending Sat Nov 21 15:34:43 2020
run_pending Sat Nov 21 15:35:43 2020
run_pending Sat Nov 21 15:36:43 2020
run_pending Sat Nov 21 15:37:43 2020
run_pending Sat Nov 21 15:38:43 2020
run_pending Sat Nov 21 15:39:43 2020
run_pending Sat Nov 21 15:40:43 2020
run_pending Sat Nov 21 15:41:43 2020
run_pending Sat Nov 21 15:42:43 2020
run_pending Sat Nov 21 15:43:43 2020
run_pending Sat Nov 21 15:44:43 2020
run_pending Sat Nov 21 15:45:43 2020
run_pending Sat Nov 21 15:46:43 2020
run_pending Sat Nov 21 15:47:44 2020
run_pending Sat Nov 21 15:48:44 2020
run_pending Sat Nov 21 15:49:44 2020
run_pending Sat Nov 21 15:50:44 2020
run_pending Sat Nov 21 15:51:44 2020
run_pending Sat Nov 21 15:52:44 2020
run_pending Sat Nov 21 15:53:44 2020
run_pending Sat Nov 21 15:54:44 2020
run_pending Sat Nov 21 15:55:44 2020
run_pending Sat Nov 21 15:56:44 2020
run_pending Sat Nov 21 15:57:44 2020
run_pending Sat Nov 21 15:58:44 2020
run_pending Sat Nov 21 15:59:44 2020
run_pending Sat Nov 21 16:00:44 2020
job Sat Nov 21 16:00:44 2020
run_pending Sat Nov 21 16:03:24 2020
run_pending Sat Nov 21 16:04:24 2020
run_pending Sat Nov 21 16:05:24 2020
run_pending Sat Nov 21 16:06:24 2020
run_pending Sat Nov 21 16:07:24 2020
run_pending Sat Nov 21 16:08:24 2020
run_pending Sat Nov 21 16:09:25 2020
run_pending Sat Nov 21 16:10:25 2020
run_pending Sat Nov 21 16:11:25 2020
run_pending Sat Nov 21 16:12:25 2020
run_pending Sat Nov 21 16:13:25 2020
run_pending Sat Nov 21 16:14:25 2020
run_pending Sat Nov 21 16:15:25 2020
run_pending Sat Nov 21 16:16:25 2020
run_pending Sat Nov 21 16:17:25 2020
run_pending Sat Nov 21 16:18:25 2020
run_pending Sat Nov 21 16:19:25 2020
run_pending Sat Nov 21 16:20:25 2020
run_pending Sat Nov 21 16:21:25 2020
run_pending Sat Nov 21 16:22:25 2020
run_pending Sat Nov 21 16:23:25 2020
run_pending Sat Nov 21 16:24:25 2020
run_pending Sat Nov 21 16:25:25 2020
run_pending Sat Nov 21 16:26:25 2020
run_pending Sat Nov 21 16:27:25 2020
run_pending Sat Nov 21 16:28:25 2020
run_pending Sat Nov 21 16:29:25 2020
run_pending Sat Nov 21 16:30:26 2020
run_pending Sat Nov 21 16:31:26 2020
run_pending Sat Nov 21 16:32:26 2020
run_pending Sat Nov 21 16:33:26 2020
run_pending Sat Nov 21 16:34:26 2020
run_pending Sat Nov 21 16:35:26 2020
run_pending Sat Nov 21 16:36:26 2020
run_pending Sat Nov 21 16:37:26 2020
run_pending Sat Nov 21 16:38:26 2020
run_pending Sat Nov 21 16:39:26 2020
run_pending Sat Nov 21 16:40:26 2020
run_pending Sat Nov 21 16:41:26 2020
run_pending Sat Nov 21 16:42:26 2020
run_pending Sat Nov 21 16:43:26 2020
run_pending Sat Nov 21 16:44:26 2020
run_pending Sat Nov 21 16:45:26 2020
run_pending Sat Nov 21 16:46:26 2020
run_pending Sat Nov 21 16:47:26 2020
run_pending Sat Nov 21 16:48:26 2020
run_pending Sat Nov 21 16:49:26 2020
run_pending Sat Nov 21 16:50:26 2020
run_pending Sat Nov 21 16:51:26 2020
run_pending Sat Nov 21 16:52:27 2020
run_pending Sat Nov 21 16:53:27 2020
run_pending Sat Nov 21 16:54:27 2020
run_pending Sat Nov 21 16:55:27 2020
run_pending Sat Nov 21 16:56:27 2020
run_pending Sat Nov 21 16:57:27 2020
run_pending Sat Nov 21 16:58:27 2020
run_pending Sat Nov 21 16:59:27 2020
run_pending Sat Nov 21 17:00:27 2020
job Sat Nov 21 17:00:27 2020
run_pending Sat Nov 21 17:03:07 2020
run_pending Sat Nov 21 17:04:07 2020
run_pending Sat Nov 21 17:05:07 2020
run_pending Sat Nov 21 17:06:07 2020
run_pending Sat Nov 21 17:07:07 2020
run_pending Sat Nov 21 17:08:07 2020
run_pending Sat Nov 21 17:09:07 2020
run_pending Sat Nov 21 17:10:07 2020
run_pending Sat Nov 21 17:11:07 2020
run_pending Sat Nov 21 17:12:07 2020
run_pending Sat Nov 21 17:13:07 2020
run_pending Sat Nov 21 17:14:07 2020
run_pending Sat Nov 21 17:15:08 2020
run_pending Sat Nov 21 17:16:08 2020
run_pending Sat Nov 21 17:17:08 2020
run_pending Sat Nov 21 17:18:08 2020
run_pending Sat Nov 21 17:19:08 2020
run_pending Sat Nov 21 17:20:08 2020
run_pending Sat Nov 21 17:21:08 2020
run_pending Sat Nov 21 17:22:08 2020
run_pending Sat Nov 21 17:23:08 2020
run_pending Sat Nov 21 17:24:08 2020
run_pending Sat Nov 21 17:25:08 2020
run_pending Sat Nov 21 17:26:08 2020
run_pending Sat Nov 21 17:27:08 2020
run_pending Sat Nov 21 17:28:08 2020
run_pending Sat Nov 21 17:29:08 2020
run_pending Sat Nov 21 17:30:08 2020
run_pending Sat Nov 21 17:31:08 2020
run_pending Sat Nov 21 17:32:08 2020
run_pending Sat Nov 21 17:34:08 2020
run_pending Sat Nov 21 17:35:08 2020
run_pending Sat Nov 21 17:36:08 2020
run_pending Sat Nov 21 17:37:08 2020
run_pending Sat Nov 21 17:38:09 2020
run_pending Sat Nov 21 17:39:09 2020
run_pending Sat Nov 21 17:40:09 2020
run_pending Sat Nov 21 17:41:09 2020
run_pending Sat Nov 21 17:42:09 2020
run_pending Sat Nov 21 17:43:09 2020
run_pending Sat Nov 21 17:44:09 2020
run_pending Sat Nov 21 17:45:09 2020
run_pending Sat Nov 21 17:46:09 2020
run_pending Sat Nov 21 17:47:09 2020
run_pending Sat Nov 21 17:48:09 2020
run_pending Sat Nov 21 17:49:09 2020
run_pending Sat Nov 21 17:50:09 2020
run_pending Sat Nov 21 17:51:09 2020
run_pending Sat Nov 21 17:52:09 2020
run_pending Sat Nov 21 17:53:09 2020
run_pending Sat Nov 21 17:54:09 2020
run_pending Sat Nov 21 17:55:09 2020
run_pending Sat Nov 21 17:56:09 2020
run_pending Sat Nov 21 17:57:09 2020
run_pending Sat Nov 21 17:58:09 2020
run_pending Sat Nov 21 17:59:09 2020
run_pending Sat Nov 21 18:00:09 2020
job Sat Nov 21 18:00:09 2020
run_pending Sat Nov 21 18:02:50 2020
run_pending Sat Nov 21 18:03:50 2020
run_pending Sat Nov 21 18:04:50 2020
run_pending Sat Nov 21 18:05:50 2020
run_pending Sat Nov 21 18:06:50 2020
killed
In this example there is always 60 seconds of sleep-time between execution of run_pending
. Because run_pending
itself takes a tiny bit of time to execute, over a long period of time, the second at which run_pending
is executed drifts. In the beginning we observe that run_pending
is executed at the 16th second, later at the 18th second.
Using at(':00')
, the job is scheduled to run at the first minute of the hour. Jobs run when run_pending
is called. Therefore the job sometimes runs at the 1th second of the first minute of the hour (15:00:01), and sometimes at the 18th second (14:00:18).
We can conclude it is possible to schedule jobs at whole hours using the .at(':00')
syntax.
from schedule.
Related Issues (20)
- Run with instance method HOT 2
- What happens when a job is "missed" at the scheduled time? HOT 1
- Unable to fetch the Jobs list
- Bi-weekly and bi-weekly the other week HOT 1
- need .until() for python 2.7 HOT 1
- Wrong documentation with timezone HOT 2
- schedule.every expects int instead of float HOT 1
- Python 3.6 is not available in github actions `ubuntu-latest` HOT 1
- mypy v0.98 and later no longer allows implicit optional
- Problem after each schedule, gets delayed even with Parallel execution HOT 2
- Start a repeating job at a specific time. HOT 3
- Unable to schedule a job to run every 80 minutes. HOT 1
- TIme zone HOT 3
- Pass in day name HOT 3
- Strange timezone behavior HOT 2
- "'float' object is not callable" when using Scheduler Class HOT 1
- Negative idle time when using a time-zone different from host machine HOT 2
- .hour.at() broken in some cross-timezone cases HOT 3
- Documentation indicates no dependencies, but there is a dependency on pytz HOT 6
- How can I run schedule inside a docker container that is also running Flask to serve API requests? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from schedule.