Skip to main content

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)


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,
    )

Project details


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-0.0.22.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

flask_jobs-0.0.22-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file flask_jobs-0.0.22.tar.gz.

File metadata

  • Download URL: flask_jobs-0.0.22.tar.gz
  • Upload date:
  • Size: 4.5 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.48.2 CPython/3.8.2

File hashes

Hashes for flask_jobs-0.0.22.tar.gz
Algorithm Hash digest
SHA256 b7aa24206e9fb465b1d898b5eb494de0335abd17936c36bc72258c6a4b097f3d
MD5 c24dbbb94dc9702cb706eaf3314d3a2a
BLAKE2b-256 c557c7633c1f4eccdfbdf076a051a9b078604d03aa28f9ebe45622f7ba83c653

See more details on using hashes here.

File details

Details for the file flask_jobs-0.0.22-py3-none-any.whl.

File metadata

  • Download URL: flask_jobs-0.0.22-py3-none-any.whl
  • Upload date:
  • Size: 4.6 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.48.2 CPython/3.8.2

File hashes

Hashes for flask_jobs-0.0.22-py3-none-any.whl
Algorithm Hash digest
SHA256 a386306a066da2d6e51095acd0035bd9a62fd44a4aa39987d35c254b48675aaa
MD5 fc484c6b127a349e6afe91c0d599cc7f
BLAKE2b-256 6c71181bbc87466912e6b695250e61fbff2fba6ad938e0470b4dd6810d7e8e51

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page