克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

OpenTask

Build status Nuget

去中心设计的分布式任务调度平台,本项目不仅仅是创造一个新的轮子,旨在补充dotnet生态下分布式任务调度系统的空白,但本项目设计的并非只支持dotnet平台;

调度中心与执行器的通讯协议采用mqtt协议,方便多种语言的快速接入,调度中心采用去中心化设计,各个调度中心之间亦采用mqtt协议通讯;

调度中心自动进行任务分片,以平均每个调度节点的负载。

详细文档

https://docs.opentask.run

体验地址

http://opentask.run/
账号:admin
密码:OpenTask

仓库地址

Github

Gitee

当前进度

⚠⚠⚠ 当前尚处于开发初期,请勿在重要的生产环境中使用。

  • web管理后台
  • cron任务
  • 工作流(DAG)
  • 固定周期任务
  • 调度中心集群部署
  • 调度中心自动分片
  • 任务重试
  • 任务故障转移
  • 进行中的任务支持取消
  • 失败告警

未完待续...

欢迎提issue补充您的需求

快速开始

1. 调度中心部署

  1. docker-compose
# 克隆本项目
cd deploy/docker-compose
docker-compose up -d
  1. k8s

  2. docker

  3. 传统手动部署

2. 执行节点开发

.NetCore

可参考 src/OpenTask.Client

  1. 安装nuget依赖 dotnet add package OpenTask.Core
  2. 注册Handler
IHost host = Host.CreateDefaultBuilder(args)
.ConfigureServices((ctx, services) =>
{
    _ = services.AddOpenTaskWorker(ctx.Configuration.GetSection("OpenTaskWorker"), options =>
    {
        options.AddHandler<DemoJobHandler>();
        options.AddHandler<JobHandler>();
    });
})
.Build();

host.Run();
  1. 配置文件
{
  "OpenTaskWorker": {
    "Addr": [ "127.0.0.1:1883" ],
    "AppName": "default"
  }
}

java

3. 管理后台查看

登录后台 localhost:8080 默认账号密码: admin/OpenTask

其他语言开发

高级配置

  1. 使用已有的数据库

贡献指南

开源项目的发展离不开社区的贡献,如果您在使用本项目中遇到问题或建议,欢迎多多提issue,对于符合大众的需求,我们将尽快进行完善。

如果您在使用中遇到了bug或者有bug的修改建议等,您可以直接创建PR,感谢~

  1. 开发数据库搭建
docker run -e MYSQL_DATABASE=open_task -e MYSQL_ROOT_PASSWORD=OPEN_TASK_!@# -p 3308:3306 --name=mysql8 -d registry.cn-hangzhou.aliyuncs.com/hgui/mysql:8.4.1
  1. 安装vs2022 打开OpenTask.sln解决方案进行开发

  2. 运行 OpenTask.WebApi 后端

  3. 切到 ui/vite-opentask 运行前端项目

需要安装node20

npm i
npm run dev

默认用户名密码 admin/OpenTask

开源协议

MIT

MIT License Copyright (c) 2024 Gui.H Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

去中心化分布式任务调度系统,全新的一次架构探索,云原生友好支持,高性能,高可用,部署简单 展开 收起
TypeScript
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化