Heroku Django Web Dyno, , ,
( , ):
after_hours.py, , ( , ).
def after_6_hours():
print('6 hours passed.')
views.py, rq ( , rq, ) rq-scheduler:
from redis import Redis
from rq_scheduler import Scheduler
from datetime import timedelta
from after_hours import after_6_hours
def create_game():
print('Game created')
scheduler = Scheduler(connection=Redis())
scheduler.enqueue_in(timedelta(hours=6), after_6_hours)
create_game() after_6_hours() 6 .
: Redis Heroku, Redis To Go .
- rqscheduler, Redis, , - , ( rq).
, Worker Dyno after_hours.py
def after_6_hours():
print('6 hours passed.')
worker.py:
import os
import redis
from rq import Worker, Queue, Connection
from after_hours import after_6_hours
listen = ['high', 'default', 'low']
redis_url = os.getenv('REDISTOGO_URL', 'redis://localhost:6379')
conn = redis.from_url(redis_url)
if __name__ == '__main__':
with Connection(conn):
worker = Worker(map(Queue, listen))
worker.work()
worker.py
python worker.py
(afer_6_hours ) Worker Dyno.
, , (after_hours.py ) . rq docs
, .
, docs .
, - ( X Y), , .
q = Queue('low', connection=redis_conn)
q.enqueue('my_package.my_module.my_func', 3, 4)
, rq-scheduler .
/ (Celery/RabbitMQ, APScheduler ..), .