fooster-cron 0.9.0

Creator: bradpython12

Last updated:

Add to Cart

Description:

foostercron 0.9.0

fooster-cron
fooster-cron is small cron-like scheduler designed for simple, recurring jobs. It supports a basic set of field values though is extensible by using any class inheriting from cron.Field. Because this package is multiprocessing, shared objects must be synchronized, e.g. by multiprocessing.Manager.
Usage
Below is basic usage for calling a function and printing a message every hour (at minute 0), a set of minutes every hour, and every 20 minutes per hour.
from fooster import cron

def count():
for i in range(5):
print(i)

scheduler = cron.Scheduler()
scheduler.add(cron.Job(count, minute=5))
scheduler.add(cron.Job(print, ['Hourly function, run every hour on the hour!'], name='hourly', minute=0))
scheduler.add(cron.Job(print, ['This one runs at special minutes!'], minute=[1, 2, 3, 5, 8, 13, 21, 34, 55]))
scheduler.add(cron.Job(print, ['This one runs every 20 minutes within each hour!'], minute=cron.Every(20)))
scheduler.start()

scheduler.join()

cron.Job
Prototype:
cron.Job(function, args=(), kwargs={}, name=None, minute=cron.All(), hour=cron.All(), day=cron.All(), month=cron.All(), weekday=cron.All())

Attributes:



Attribute
Value




function
function to call


args
tuple of function arguments


kwargs
dictionary of named function arguments


minute
range [0, 59]


hour
range [0, 23]


day
range [1, 31]


month
range [1, 12]


weekday
range [0, 6], 0 is Monday



cron.Field
To make a custom field, inherit from cron.Field and change the __eq__ method to return True when the passed value matches. The param member of the class is automatically populated with the passed argument unless the __init__ method is overridden. The value passed is a value from one of the time.struct_time fields.
Examples
List
class List(cron.Field):
def __eq__(self, value):
return value in self.param

All
class All(cron.Field):
def __init__(self):
pass

def __eq__(self, value):
return True

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.