Skip to main content

Mutil-thread/mutil-process task scheduler drive by Tornado IOLoop for human.

Project description

Chronos is a mutil-thread/mutil-process task scheduler drive by Tornado IOLoop.

Install

Install the extension with the following command:

$ easy_install chronospy

or alternatively if you have pip installed:

$ pip install chronospy

or clone it form github then run the command in shell:

cd chronos # the path to the project
python setup.py install

Hello World

import tornado
import chronos
import os
import urllib2


def test_process():
    print("process pid %s" % (os.getpid()))


def test(word):
    print("an other task, say '%s'" % (word))


def say():
    response = urllib2.urlopen('https://www.google.com/')
    html = response.read()
    print(html[:10])


def init():

    # bind a ioloop or use default ioloop
    chronos.setup()  # chronos.setup(tornado.ioloop.IOLoop())
    chronos.schedule('say', chronos.every_second(1), say)
    chronos.schedule('say2', chronos.every_second(1), test_process, once=True, process=True)
    chronos.schedule('say3', chronos.every_second(1), lambda: test("test3"))
    chronos.start(True)

if __name__ == '__main__':

    init()

API

setup

setup(io_loop=None)

bind a io_loop or use default ioloop.

schedule

schedule(name, timer, func, once=False, start=False, process=False, max_executor=5)

add task into chronos:

name:

uniqe task name,

timer:

every timer object

func:

the task function

once:

set True will run only once time.

start:

when chronos start and schedule a new task, if set to True will add to Tornado IOLoop and schedule to run at time.

process:

if process is True, then the job will run in on a procees, otherwise defaultly running in thread.

max_executor:

the max threads(or processes) to run a task.

remove_task

remove_task(task_name)

stop and remove the task from chronos

start_task

start_task(task_name)

start the task in chronos

stop_task

stop_task(task_name)

stop the task in chronos

start

start(start_ioloop=False)

add tasks in ioloop, if you use chronos in a tornado web server, you can set start_ioloop to “False”, then start your custom ioloop later.

stop

stop(stop_ioloop=False, clear=True)

stop the task in ioloop

stop_ioloop:

will stop the ioloop if set to “True”.

clear:

will remove tasks from chrons if set to “True”.

how to use every tools

every_second

set eveny seconds to run a job:

every_second(5) # run job every 5 seconds

every_at

set every hourly or mintuely run a job:

every_at(hour=1, minute=10, second=0) # run at 01:10:00 every day
every_at(minute=10, second=0) # run at run at 10 mintue every hour

every

every(10).minutes
every().hour
every().day.at("10:30")
every().monday
every().wednesday.at("13:15")

LICENSE

Copyright (C) 2015 Thomas Huang

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 of the License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

chronospy-0.1.7.zip (14.2 kB view details)

Uploaded Source

chronospy-0.1.7.tar.gz (9.0 kB view details)

Uploaded Source

File details

Details for the file chronospy-0.1.7.zip.

File metadata

  • Download URL: chronospy-0.1.7.zip
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for chronospy-0.1.7.zip
Algorithm Hash digest
SHA256 db1732835abf2d118e75ef875470095ff149a1ec1c3392c79d83b9b232e86edf
MD5 05ea456b4ee43dd25c8b6421883fb7a0
BLAKE2b-256 182521fb6a63ffe3026773b33665a7fa80c35795eea525d8e3c2b21ef2d04ad6

See more details on using hashes here.

File details

Details for the file chronospy-0.1.7.tar.gz.

File metadata

  • Download URL: chronospy-0.1.7.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for chronospy-0.1.7.tar.gz
Algorithm Hash digest
SHA256 3ad8047fb7f01d3ed1baacebbe97babe085a7e159b7ff1b35b6a7a258a37b480
MD5 da961e0c98f6b659b7fd7718fa2f36fa
BLAKE2b-256 74d88c9bf9b08c66ce6683baccd0b28a3114db8e69092c72b9f3c67ad223f692

See more details on using hashes here.

Supported by

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