Created
November 30, 2024 17:50
-
-
Save agronholm/05b37403bdf2a211424b895608600926 to your computer and use it in GitHub Desktop.
APScheduler + Redis + PoolProcessExecutor
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from apscheduler.executors.pool import ProcessPoolExecutor, ThreadPoolExecutor | |
from apscheduler.jobstores.redis import RedisJobStore | |
from apscheduler.schedulers.background import BlockingScheduler | |
from apscheduler.triggers.cron import CronTrigger | |
from func import heart_beat | |
if __name__ == "__main__": | |
executors = { | |
'default': ThreadPoolExecutor(max_workers=10), | |
'processpool': ProcessPoolExecutor(max_workers=5) | |
} | |
jobstores = {'redis': RedisJobStore()} | |
scheduler = BlockingScheduler(jobstores=jobstores, executors=executors) | |
scheduler.add_job( | |
id="pooljob", | |
func=heart_beat, | |
replace_existing=True, | |
trigger=CronTrigger.from_crontab("* * * * *"), | |
jobstore='redis', | |
executor="processpool", | |
) | |
scheduler.start() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from datetime import datetime | |
def heart_beat(): | |
print(f"now: {datetime.now()}") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment