All Projects → rajasimon → Beatserver

rajasimon / Beatserver

Licence: mit
Beatserver, a periodic task scheduler for Django 🎵

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Beatserver

Graphene Django Subscriptions
This package adds support to Subscription's requests and its integration with websockets using Channels package.
Stars: ✭ 173 (+63.21%)
Mutual labels:  channels, django, websocket
Chatire
💬 Real time Chat application built with Vue, Django, RabbitMQ and uWSGI WebSockets.
Stars: ✭ 278 (+162.26%)
Mutual labels:  django, websocket
Springboot Learn
🌹springboot常用框架整合示例,涉及多种网站监控,数据缓存,网络通信,持久层,权限管理,常用工具等
Stars: ✭ 270 (+154.72%)
Mutual labels:  task, websocket
Xxl Job
A distributed task scheduling framework.(分布式任务调度平台XXL-JOB)
Stars: ✭ 20,197 (+18953.77%)
Mutual labels:  scheduler, task
threadpool
Golang simple thread pool implementation
Stars: ✭ 68 (-35.85%)
Mutual labels:  scheduler, channels
linda
Linda is a simple dispatcher library.
Stars: ✭ 12 (-88.68%)
Mutual labels:  task, scheduler
Laravel S
LaravelS is an out-of-the-box adapter between Swoole and Laravel/Lumen.
Stars: ✭ 3,479 (+3182.08%)
Mutual labels:  task, websocket
tasks
Package tasks is an easy to use in-process scheduler for recurring tasks in Go
Stars: ✭ 121 (+14.15%)
Mutual labels:  task, scheduler
Queuer
Queuer is a queue manager, built on top of OperationQueue and Dispatch (aka GCD).
Stars: ✭ 964 (+809.43%)
Mutual labels:  scheduler, task
Lunch With Channels
Stars: ✭ 32 (-69.81%)
Mutual labels:  channels, django
Django Channels React Multiplayer
turn based strategy game using django channels, redux, and react hooks
Stars: ✭ 52 (-50.94%)
Mutual labels:  django, websocket
resc
A task orchestrator using redis, written in rust
Stars: ✭ 27 (-74.53%)
Mutual labels:  task, scheduler
go-xxl-job-client
xxl-job go client
Stars: ✭ 36 (-66.04%)
Mutual labels:  task, scheduler
josk
🏃🤖 Scheduler and manager for jobs and tasks in node.js on multi-server and clusters setup
Stars: ✭ 27 (-74.53%)
Mutual labels:  task, scheduler
chronus
Chronus是360数科技术团队基于阿里开源项目TBSchedule重写的分布式调度。
Stars: ✭ 174 (+64.15%)
Mutual labels:  task, scheduler
Docker Airflow
Docker Apache Airflow
Stars: ✭ 3,375 (+3083.96%)
Mutual labels:  scheduler, task
Clock
可视化任务调度系统,精简到一个二进制文件 (Web visual task scheduler system , yes ! just one binary solve all the problems !)
Stars: ✭ 86 (-18.87%)
Mutual labels:  scheduler, task
croner
Trigger functions and/or evaluate cron expressions in JavaScript. No dependencies. Most features. All environments.
Stars: ✭ 169 (+59.43%)
Mutual labels:  task, scheduler
YACLib
Yet Another Concurrency Library
Stars: ✭ 193 (+82.08%)
Mutual labels:  task, scheduler
Ituscheduler
Create your ITU course schedules in fashion with up-to-date & detailed information.
Stars: ✭ 24 (-77.36%)
Mutual labels:  scheduler, django

beatserver

Beat Server

Build Status PyPI version

Beatserver, a periodic task scheduler for django channels | beta software

How to install

Prerequirements:

Follow django channels documentation on howto install channels.

Install beatserver:

pip install -U beatserver

Configurations:

Add beatserver to INSTALLED_APPS in settings.py:

INSTALLED_APPS = [
    'beatserver',
    'channels',
    '...'
]

beatconfig.py

from datetime import timedelta

BEAT_SCHEDULE = {
    'testing-print': [
        {
            # will call test_print method of PrintConsumer
            'type': 'test.print',
            # message to pass to the consumer
            'message': {'testing': 'one'},
            # Every 5 seconds
            'schedule': timedelta(seconds=5)
        },
        {
            'type': 'test.print',
            'message': {'testing': 'two'},
            # Precisely at 3AM on Monday
            'schedule': '0 3 * * 1' 
        },
    ]
}

Schedules can be specified as timedeltas for running tasks on specified intervals, or as cron-syntax strings for running tasks on exact schedules.

routing.py

application = ProtocolTypeRouter({
    "channel": ChannelNameRouter({
        "testing-print": PrintConsumer,
    }),
})

consumers.py

from channels.consumer import SyncConsumer

class PrintConsumer(SyncConsumer):
    def test_print(self, message):
        print(message)

How to run:

python manage.py beatserver
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].