All Projects → labulaka521 → Crocodile

labulaka521 / Crocodile

Licence: mit
Distributed Task Scheduling System|分布式定时任务调度平台

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Crocodile

Workq
Job server in Go
Stars: ✭ 1,546 (+201.95%)
Mutual labels:  scheduler, worker
Rundeck
Enable Self-Service Operations: Give specific users access to your existing tools, services, and scripts
Stars: ✭ 4,426 (+764.45%)
Mutual labels:  scheduler
Sparklens
Qubole Sparklens tool for performance tuning Apache Spark
Stars: ✭ 345 (-32.62%)
Mutual labels:  scheduler
Px
Single header C++ Libraries for Thread Scheduling, Rendering, and so on...
Stars: ✭ 395 (-22.85%)
Mutual labels:  scheduler
React Timeline Gantt
A react Timeline component with virtual rendering
Stars: ✭ 347 (-32.23%)
Mutual labels:  scheduler
Taskscheduler
Cross-platform, fiber-based, multi-threaded task scheduler designed for video games.
Stars: ✭ 402 (-21.48%)
Mutual labels:  scheduler
Gocron
定时任务管理系统
Stars: ✭ 4,198 (+719.92%)
Mutual labels:  scheduler
Quartznet
Quartz Enterprise Scheduler .NET
Stars: ✭ 4,825 (+842.38%)
Mutual labels:  scheduler
Active workflow
Turn complex requirements to workflows without leaving the comfort of your technology stack.
Stars: ✭ 413 (-19.34%)
Mutual labels:  scheduler
Backburner.js
A rewrite of the Ember.js run loop as a generic microlibrary
Stars: ✭ 391 (-23.63%)
Mutual labels:  scheduler
Ergo
a Framework for creating mesh networks using technologies and design patterns of Erlang/OTP in Golang
Stars: ✭ 376 (-26.56%)
Mutual labels:  worker
Db Scheduler
Persistent cluster-friendly scheduler for Java
Stars: ✭ 352 (-31.25%)
Mutual labels:  scheduler
Swarm Cronjob
Create jobs on a time-based schedule on Docker Swarm
Stars: ✭ 405 (-20.9%)
Mutual labels:  scheduler
Concurrencpp
Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all
Stars: ✭ 340 (-33.59%)
Mutual labels:  scheduler
Finalscheduler
📆 终极排班管理、考勤系统
Stars: ✭ 441 (-13.87%)
Mutual labels:  scheduler
Meeting For Good
A meeting coordination app for your team
Stars: ✭ 339 (-33.79%)
Mutual labels:  scheduler
Wedatasphere
WeDataSphere is a financial level one-stop open-source suitcase for big data platforms. Currently the source code of Scriptis and Linkis has already been released to the open-source community. WeDataSphere, Big Data Made Easy!
Stars: ✭ 372 (-27.34%)
Mutual labels:  scheduler
Post Me
📩 Use web Workers and other Windows through a simple Promise API
Stars: ✭ 398 (-22.27%)
Mutual labels:  worker
Greenlet
🦎 Move an async function into its own thread.
Stars: ✭ 4,511 (+781.05%)
Mutual labels:  worker
Airflow
Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
Stars: ✭ 24,101 (+4607.23%)
Mutual labels:  scheduler

Crocodile Distributed Task Scheduling System

GitHub Workflow Status Downloads Docker Pulls license Release GitHub issues GitHub pull requests

English | 中文

Introduction

A distributed task scheduling system based on Golang that supports http requests, run golang、python、python3、shell、bat

Screenshot

Click Me

                                                  +----------+
        +-------------+                           ||--------||
        ||-----------||                           ||        ||
        ||           ||                           || Worker ||
        ||   调度中心 ||                           ||         ||
        ||           ||      RPC调用(gRPC)        ||---------||
        ||-----------|| +-----------------------> ||-------- ||
        ||-----------||                           ||        ||
        ||           || <-----------------------+ || Worker ||
  +---> ||   调度中心 ||      任务实时日志            ||        ||
任 |    ||           ||                           ||--------||
务 |    ||-----------|| <------+                  ||--------||
完 |     +------------+        |                  ||        ||
成 |         ^    |            |                  || Worker ||
持 |       实|任   |            |数                ||        ||                
久 |       时|务   |获          |据                 +----------+ 
日 |       志|状   |取          |存                
志 |       日|态   |锁          |储
   |        v     v            v
   |      +-------+-+      +----+---+
   |      |         |      |        |
   +----- |  Redis  |      | MySQL  |
          |         |      |        |
          +---------+      +--------+

Features

  • Add, modify, delete, clone and run tasks on the web node
  • View real-time logs of running tasks and tasks in real time, and can terminate running tasks
  • Multiple task types:
        - Perform http request tasks
        - Run shell,python, golangpython3nodejscodes (of course other languages ​​can also be supported, please provide if necessary)
  • Father and child tasks:
        When the parent task or child task is set, the parent task->main task-> subtask will be run first. If any task fails, the entire process will be interrupted immediately. You can also set the parent task or subtaskOrserial run
  • Scheduling Algorithm:
        Supports four scheduling algorithms: random, rotation, worker weight, minimum worker number to call Worker to run tasks,
  • Custom alarm strategy:
        Can be set to alert multiple users when the task success,failure, or run is completed
        Set the return code or return content of the task to compare whether the actual return code or return content of the task is the same to determine whether the task runs successfully.
  • Host group:
        A task can only be bound to any host group. The running of the task will select a task in this host group to run the task through the task's routing strategy
  • Host:
        A host group can be bound to multiple hosts, the host is the node that actually runs the task, and the dispatch center automatically discovers after registration
  • security strategy
        Certificate encryption encrypts communication data     Access token
  • Task log management, clean up logs
  • Alarm notification support platform
    • Mail
    • WeChat
    • DingDing
    • Slack Channel
    • Telegram Bot
    • WebHook URL
  • Detailed task audit function
        All operations on data changes to users will be recorded
  • Permission control
    • Administrator
              Have all operating rights
    • general user
              New tasks and host groups can be created, but only tasks or host groups that have been created can be operated, but audit records and all users cannot be viewed
    • Guest
      Only viewing authority, no operation modification authority, but can not view audit records, all users

Supported platforms

  • Linux
  • Mac
  • Windows

Quick Start

git clone https://github.com/labulaka521/crocodile
cd crocodile
docker-compose up -d

Then open urlhttp://yourip:8080,you need to input a admin user and password to install it, than you will come in this system

Running

  • Click to download,uncompress it
  • installredismysql,then change config file core.toml
  • If you need to enable certificate authentication between scheduling nodes, please generate a certificate,
        Run the command to generate cert certificate
    crocodile cert
    

     Then two files cert.pem andkey.pem will be generated locally in the current directory. After saving these two files, fill in the path of the file in the value configuration file. Each node needs these two files

  • Run as a scheduler center
        Multiple dispatch centers can be started to prevent single points of failure from causing dispatch to hang up

    ./crocodile server -c core.toml
    
  • Run as a Worker (host) node

    /crocodile client -c core.toml
    
  • View version compilation information

    ./crocodile version
    
  • Configuration Alarm

Development

  • Frontend
    • Install yarn
    • Go to the web directory, first download the dependency yarn, and then run the front-endyarn run dev separately
    • Package to go, execute make frontrnd,
  • Backend
    • Run make runs as a schdeule center
    • Run make runc as worker node

The sql directory is also packaged in go-bindata. During installation, the sql creation statement will be read from the file generated bygo-bindata. If the sql is modified, re-execute make bin-data

Doc

Wiki

Donate

If this project could help you, I hope you could donate me by alipay

License

Crocodile is under the MIT license. See the LICENSE file for details.

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].