An easy job scheduling interface for flask projects.
Project description
An easy job scheduling interface for flask projects.
Install
pip install flask_jobs
Example Flask Project
import datetime
import time
from flask import Flask, render_template, redirect
from flask_jobs import JobScheduler
app = Flask('JobApp')
jobs = JobScheduler(
app,
SERVER_HOST_URL='https://mysite.com/', # only required for linux
deleteOldJobs=False,# whether to keep old jobs in the database
)
def Callback(*a, **k):
print('Callback(', a, k)
@app.route('/')
def Index():
return render_template(
'index.html',
jobs=jobs.GetJobs(),
utcnow=datetime.datetime.utcnow(),
)
@app.route('/add_now_job')
def NowJob():
# Schedule a job to happen ASAP
jobs.AddJob(
func=Callback,
args=('Now Job now={}'.format(datetime.datetime.utcnow()),),
kwargs={'one': 'won', 'two': 'too'},
name='Now Job at {}'.format(time.asctime())
)
return redirect('/')
@app.route('/add_later_job')
def LaterJob():
# Schedule a job to happen once in the future
dt = datetime.datetime.utcnow() + datetime.timedelta(seconds=5)
jobs.ScheduleJob(
dt=dt,
func=Callback,
args=('ScheduleJob now={}, dt={}'.format(
datetime.datetime.utcnow(),
dt
),),
kwargs={'one': 'won', 'two': 'too'},
name='ScheduleJob Job at {}'.format(time.asctime())
)
return redirect('/')
@app.route('/add_repeat_job')
def Repeat():
# Schedule a job to repeat at the given interval
dt = datetime.datetime.utcnow()
jobs.RepeatJob(
startDT=dt, # The first time to run (None if you want to start right now)
func=Callback,
args=('RepeatJob now={}, dt={}'.format(
datetime.datetime.utcnow(),
dt
),),
kwargs={'one': 'won', 'two': 'too'},
name='RepeatJob Job at {}'.format(time.asctime()),
seconds=10, # can also pass "weeks", "days", "minutes", "hours"
)
return redirect('/')
@app.route('/delete/<ID>')
def Delete(ID):
job = jobs.GetJob(int(ID))
job.Delete()
return redirect('/')
if __name__ == '__main__':
app.run(
debug=True,
threaded=True,
)
Notes
On Linux, a cron job is automatically created that runs once per minute. This could lead to your ScheduleJob() and RepeatJob() being delayed by up to 1 minute. AddJob() will always be executed ASAP.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
flask_jobs-1.0.14.tar.gz
(7.2 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flask_jobs-1.0.14.tar.gz.
File metadata
- Download URL: flask_jobs-1.0.14.tar.gz
- Upload date:
- Size: 7.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9f23798dad732f1f835d72000d55a975a5dd13d229d8aff9e576be9a7ead2631
|
|
| MD5 |
9c1e20bbca9f579785f1dc295fe4dbcd
|
|
| BLAKE2b-256 |
611a14fa37caf356db393521756d33a592ac0a87f6afb34291778d385203bd7a
|
File details
Details for the file flask_jobs-1.0.14-py3-none-any.whl.
File metadata
- Download URL: flask_jobs-1.0.14-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/46.4.0 requests-toolbelt/0.9.1 tqdm/4.49.0 CPython/3.8.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc77576e0018527248bcc4a4dac90c616bc8b9b8995840e717bb5003e4f3bcec
|
|
| MD5 |
12db4af82a1075d0dedba8bfa45d8c75
|
|
| BLAKE2b-256 |
c6486a6507eb9d111075464a7e54a7a6cc2f21ee523ba2245a39b3ba43e0a8fa
|