delicate A lightweight and distributed task scheduling platform written in rust

Overview

Delicate

Build License

English | 简体中文

What is delicate

delicate logo

delicate A lightweight and distributed task scheduling platform written in rust.:

features

  • Friendly UI: [Front-end] Convenient management of tasks & executors, monitoring their status and supporting manual maintenance etc.

  • Flexible Operations: Flexible task operations, support for limiting the maximum number of parallelism in a single node, time zone settings corresponding to cron expressions, scheduling modes (single, fixed number, constantly repeating), the ability to manually trigger tasks at any time, manually terminate task instances, and view task logs online.

  • High Availability: Delicate supports unlimited horizontal expansion. It's easy to achieve high availability and performance by deploying as many Delicate servers and executors.

  • High Performance: Lightweight and essential features speed up the performance, The basic resource overhead for delicate is roughly (less than 0.1% cpu usage, with about 10m of memory.)

  • Observability: There are many meaningful statistics periodically in a readable way.

  • Upgrade: Dynamic upgrade of the system (upgrade is done by obtaining the latest source code and performing database migration.

The architecture of delicate:

architecture

Benchmark

Task take about 6,424 ns (+/- 52) per scheduling on CentOS Linux release 7.6.1810 (Core) (varies by OS/hardware).

The rest of the overall indicators await bench.

Get Started

The basic common usage of delicate is to quickly set up for the backend servers and executors. We split it into multiple simple steps to illustrate the delicate concepts and operations.

The source code installation requires:

  • rustc (minimum-supported version of rustc is 1.49.)
  • libmysqlclient-dev & libpq-dev & libssl-dev

Setting up delicate

  1. install the rust suite: curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh or curl --tlsv1.2 -sSf https://sh.rustup.rs | sh or curl https://sh.rustup.rs -sSf | sh . (It is possible to encounter a curl error and need to retry several times, These problems are usually due to the fact that the curl version is too low, or the network is unstable.)

  2. initialize cargo in the current shell, source $HOME/.cargo/env .

  3. Get the delicate source code and compile it ( this is an example, please get the corresponding Tag version according to your needs ) : git clone https://github.com/BinChengZhao/delicate.git .

  4. cd delicate/ .

  5. cargo check , check for environment dependencies etc.

  6. when error: linker cc not found: solution : yum -y install gcc .

  7. when --- stderr thread 'main' panicked at 'Without* set in .env: NotPresent' then you need to set the environment variable, using the project's template.env ` .

  8. cp template.env .env and start modifying the configuration.

  9. Compile the executable with cargo build --release after passing it.

  10. Start delicate-scheduler: nohup target/release/delicate-scheduler >> scheduler.log 2>&1 & on the machine where the server is deployed .

  11. start delicate-executor: nohup target/release/delicate-executor >> executor.log 2>&1 & on the machine performing the task .

  12. Please refer to delicate-web/README.md for the deployment of front-end resources.

  13. delicate-scheduler & delicate-web need to be under the same domain (such as api.delicate.com & web.delicate.com), so as to avoid cross-domain issues, Both delicate-scheduler & delicate-web can be deployed in clustered versions, accessible via reverse proxy.

Quick start

Quick-start

Documentation

See reference for more information.

To Do List

  • I18n.
  • Permission Management.
  • Multiple login protocols, LDAP CAS .
  • Machine resource panel, online view of processes, memory, cpu, etc.
  • Database back-end support Postgres.
  • scheduler & executor communication using RPC, but currently there are problems with dependencies (RPC framework (tonic | tarpc) both depend on tokio 1,current actix-web stable version 3, does not support integration with tokio 1 ).
  • Task flow support.
  • Dynamic executor load adjustment, where the resource group adjusts the task load of the task execution nodes according to the machine metrics.

Roadmap

See delicate Roadmap for details.

Contributing

🎈 Thanks for your help improving the project! We are so happy to have you! We have a contributing guide to help you get involved in the Delicate project.

Rust-guide Js-guide

Thanks

Sincere thanks to my friend Walker-os who helped me solve a lot of front-end resource problems and speed up the release of delicate and Liping Wang help me beautify the logo.

Stargazers over time

Stargazers over time

License

Licensed under either of

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

Comments
  • Endless LOADING

    Endless LOADING

    To Reproduce Run locally all projects. cd delicate-web $ yarn run start:development

    Expected behavior Any UI (or at least any error :)

    Screenshots LOADING

    Desktop (please complete the following information): chrome, firefox

    opened by makorne 8
  • delay_timer-0.9.2/src/utils/parse.rs build error

    delay_timer-0.9.2/src/utils/parse.rs build error

    • Rust: [1.58.1]
    • OS: [centos8]
    • Version [main]

    Additional context

    delay_timer-0.9.2/src/utils/parse.rs:308:9 | 308 | Ok(process_linked_list) | ^^^^^^^^^^^^^^^^^^^^^^^ expected enum error::CommandChildError, found struct anyhow::Error

    opened by liyunde 2
  • can this project handle million of  one time task?

    can this project handle million of one time task?

    I got 30 million users, every one has one task specified on at specific day, note not the same date, for example,

    user1, got a task , run at 2021-10-3 23:19:00
    user2, got a task , run at 2021-11-3 13:19:00
    ...
    

    30 million tasks, which means we have no way to load all tasks into memory, does this project support this case please ?

    opened by vidyli 2
  • Feature/migrate to poem

    Feature/migrate to poem

    1. actix-web related dependencies are removed and replaced with poem & tokio.
    2. upgrade multiple dependencies with direct dependencies on tokio 1.0.
    3. global modification of all middleware. 4.
    4. application style change from actix-web to poem & tokio combined style.
    5. full link testing and writing migration logs.
    opened by BinChengZhao 0
  • Feature/permission optimization

    Feature/permission optimization

    Version 1.2.0 [unreleased]

    Bug Fixes

    • Pro-macro typo.
    • Casbin-auth issue.
    • Update navigate for front.
    • Update executor-process-bind task mess error
    • Change issue_zh_cn.md
    • Update front-end page fields.

    Documentation

    • Optimize delicate-web's doc.
    • Update Roadmap for poem.
    • Update issue-zh-cn.md
    • Update issues.md
    • Update Changelog
    • Update todo doc.
    • Additional benchmark data.
    • Detailing feat illustration.

    Features

    • Optimization task log
    • Planning log deletion function.
    • Optimize casbin-auth components.
    • Personal Center
    • Casbin-adapter impl.
    • A more complete debugging experience.
    • Response data structure greatly compatible
    • Health-checker optimize.
    • Casbin-adapter intergration.
    • Auth-casbin-eventconsumer basically complete
    • Strong control of casbin.
    • 10 rbac-api are basically completed.
    • Customized runtime environment, debug switch
    • Optimize creation user-info rule.
    • Tracing & flexi_logger to improve log handle

    Fix

    • Operation log details id batch assign issue
    • Change-password api undefined error.

    Miscellaneous Tasks

    • Handle some compile error.
    • Optimize code and append auth-conf.
    • Update doc & Optimize code.
    • Optimize state-desc .
    • Improve casbin-auther.
    • Optimize role-api.
    • Role-api append operation log.
    • User-permission-api optimize.
    • Update dependencies delay-timer.
    • Improve log experience.
    • Optimize span record.

    Performance

    • Optimize task-log deletion fuction.
    opened by BinChengZhao 0
  • Phase merge V1.1.0 features.

    Phase merge V1.1.0 features.

    Version 1.1.0 [unreleased]

    • More tracking of user behavior, more advancement of auxiliary functions, and better applications etc.
    1. stock issues are all solved.

    2. operation logs, login logs, I18N, heartbeat checks, robust event callbacks, related refinements.

    3. Permission module (do research and design model in this period).

    Documentation

    • Optimize delicate-web's doc.

    Features

    • Log detail & task advance .
    • Explore permission-related features.
    • Implement task-log deletion function.
    • Optimize casbin-auth components.

    Fix

    • Operation log details id batch assign issue

    Miscellaneous Tasks

    • Optimize code & casbin import.
    • Handle some compile error.
    • Optimize code and append auth-conf.
    • Update doc & Optimize code.

    Performance

    • Optimize task-log deletion fuction.
    opened by BinChengZhao 0
  • feature/web1.0.2

    feature/web1.0.2

    This modification :

    Completion of the development of the scheduling resources page. Integration of Echart charts. fixing of some issues. eslint formatting of some code.

    opened by Walker-os 0
  • delicate_executor: Failed to send the event collection: builder error: relative URL without a base

    delicate_executor: Failed to send the event collection: builder error: relative URL without a base

    delicate_executor: Failed to send the event collection: builder error: relative URL without a base - scheduler_host:dhlfzj.com/api/task_log/event_trigger executor_processor_id:5 executor_processor_host:127.0.0.1:9080 executor_processor_name:本机节点 executor_machine_id:1 time:1663990013 - ExecutorEventCollection { events: [ExecutorEvent { task_id: 7, id: 6979285480500105216, event_type: 1, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }, ExecutorEvent { task_id: 7, id: 6979285480500105216, event_type: 2, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }, ExecutorEvent { task_id: 7, id: 6979285484686020608, event_type: 1, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }, ExecutorEvent { task_id: 7, id: 6979285484686020608, event_type: 2, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }, ExecutorEvent { task_id: 7, id: 6979285488871936000, event_type: 1, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }, ExecutorEvent { task_id: 7, id: 6979285488871936000, event_type: 2, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }, ExecutorEvent { task_id: 7, id: 6979285493032685568, event_type: 1, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }, ExecutorEvent { task_id: 7, id: 6979285493032685568, event_type: 2, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }, ExecutorEvent { task_id: 7, id: 6979285497264738304, event_type: 1, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }, ExecutorEvent { task_id: 7, id: 6979285497264738304, event_type: 2, executor_processor_id: 5, executor_processor_name: "本机节点", executor_processor_host: "127.0.0.1:9080", output: None }], timestamp: 1663991331 }

    What should I do?

    opened by aalphaa 0
  • You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    To Reproduce Steps to reproduce the behavior:

    when work the cargo run --bin delicate-scheduler.

    it reports that:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1  
    

    the .env file and mysql configs is that DATABASE_URL=mysql://test111:[email protected]:3306/db_name

    opened by diaojunxian 1
  • undefined symbol: _ZNSt8ios_base4InitD1Ev

    undefined symbol: _ZNSt8ios_base4InitD1Ev

    Describe the bug error: /home/liyunde/delicate/target/debug/deps/libmigrations_macros-66ae0fade1d84c0b.so: undefined symbol: _ZNSt8ios_base4InitD1Ev -->/home/liyunde/.cargo/registry/src/mirrors.tuna.tsinghua.edu.cn-df7c3c540f42cdbd/diesel_migrations-1.4.0/src/lib.rs:82:1 | 82 | extern crate migrations_macros; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

    error: could not compile diesel_migrations due to previous error

    To Reproduce Steps to reproduce the behavior: git pull 已经是最新的。 cp template.env .env cargo build -v

    环境 centos8 rustc 1.58.1 (db9d1b20b 2022-01-20) gcc 版本 8.5.0 20210514 /usr/lib/gcc/x86_64-redhat-linux/8/../../../libmysqlclient.a nm target/debug/deps/libmigrations_macros-66ae0fade1d84c0b.so | grep _ZNSt8ios_base4InitD1Ev U _ZNSt8ios_base4InitD1Ev

    opened by liyunde 0
  • When I manually trigger a task, it always reports an error

    When I manually trigger a task, it always reports an error

    Describe the bug When I manually trigger a task, it always reports an error.As shown in the following figure.

    Screenshots

    1. When I manually trigger a task, a stack overflow error is reported image

    2. An error will be reported when a task is triggered manually image

    Desktop (please complete the following information):

    • OS: macOS 12.3.1 (21E258)
    • Browser: chrome
    opened by free-hawk 2
  • dashboard does not show

    dashboard does not show

    after log with admin/admin, the url is "web-local.delicate-rs.com/dashboard"

    nothing shows

    the erro message looks like image

    for details : TypeError: utils.vc is undefined render webpack://delicate-web/./src/layouts/index.js_+17_modules?:2274 React 7 unstable_runWithPriority webpack://delicate-web/./node_modules/scheduler/cjs/scheduler.production.min.js?:19 React 6 unlisten webpack://delicate-web/./node_modules/react-router/esm/react-router.js+1_modules?:295 listen webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:4571 setTimeout handler*patchHistory/history.listen/< webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:4570 listener webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:294 notifyListeners webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:312 notifyListeners webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:311 setState webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:427 push webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:508 confirmTransitionTo webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:284 push webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:489 goDashboard webpack://delicate-web/./src/models/app.js+_1_modules?:170 callee$ webpack://delicate-web/./src/models/app.js+1_modules?:265 tryCatch webpack://delicate-web/./node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime/runtime.js?:45 invoke webpack://delicate-web/./node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime/runtime.js?:274 method webpack://delicate-web/./node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime/runtime.js?:97 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1988 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 promise callback*resolvePromise webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2127 runCallEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2194 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 proc webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1947 resolveIterator webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2133 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2109 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 runPutEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2176 exec webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1187 flush webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1228 asap webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1201 runPutEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2163 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 runSelectEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2376 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 promise callback*resolvePromise webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2127 runCallEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2194 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 proc webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1947 resolveIterator webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2133 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2109 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 runPutEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2176 exec webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1187 flush webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1228 asap webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1201 chan webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1414 emit webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1257 sagaMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2557 createPromiseMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:3604 createPromiseMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:3603 routerMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:4282 handleOk webpack://delicate-web/./src/pages/login/index.js+8_modules?:193 onFinish webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:4082 submit webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:3900 promise callback*FormStore/this.submit webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:3895 onSubmit webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:4139 React 6 react-dom.production.min.js:209:195 React 5 unstable_runWithPriority webpack://delicate-web/./node_modules/scheduler/cjs/scheduler.production.min.js?:19 React 4 unstable_runWithPriority webpack://delicate-web/./node_modules/scheduler/cjs/scheduler.production.min.js?:19 React 6 unlisten webpack://delicate-web/./node_modules/react-router/esm/react-router.js+1_modules?:295 listen webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:4571 (Async: setTimeout handler) listen webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:4570 listener webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:294 notifyListeners webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:312 notifyListeners webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:311 setState webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:427 push webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:508 confirmTransitionTo webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:284 push webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:489 goDashboard webpack://delicate-web/./src/models/app.js+_1_modules?:170 callee$ webpack://delicate-web/./src/models/app.js+1_modules?:265 tryCatch webpack://delicate-web/./node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime/runtime.js?:45 invoke webpack://delicate-web/./node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime/runtime.js?:274 method webpack://delicate-web/./node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime/runtime.js?:97 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1988 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 (Async: promise callback) resolvePromise webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2127 runCallEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2194 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 proc webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1947 resolveIterator webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2133 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2109 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 runPutEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2176 exec webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1187 flush webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1228 asap webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1201 runPutEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2163 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 runSelectEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2376 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 (Async: promise callback) resolvePromise webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2127 runCallEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2194 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 proc webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1947 resolveIterator webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2133 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2109 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 runPutEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2176 exec webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1187 flush webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1228 asap webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1201 chan webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1414 emit webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1257 sagaMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2557 createPromiseMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:3604 createPromiseMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:3603 routerMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:4282 handleOk webpack://delicate-web/./src/pages/login/index.js+8_modules?:193 onFinish webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:4082 submit webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:3900 (Async: promise callback) submit webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:3895 onSubmit webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:4139 React 6 Uncaught TypeError: utils.vc is undefined render webpack://delicate-web/./src/layouts/index.js+17_modules?:2274 React 7 unstable_runWithPriority webpack://delicate-web/./node_modules/scheduler/cjs/scheduler.production.min.js?:19 React 6 unlisten webpack://delicate-web/./node_modules/react-router/esm/react-router.js+1_modules?:295 listen webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:4571 setTimeout handler*patchHistory/history.listen/< webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:4570 listener webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:294 notifyListeners webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:312 notifyListeners webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:311 setState webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:427 push webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:508 confirmTransitionTo webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:284 push webpack://delicate-web/./node_modules/history-with-query/esm/history.js+2_modules?:489 goDashboard webpack://delicate-web/./src/models/app.js+_1_modules?:170 callee$ webpack://delicate-web/./src/models/app.js+1_modules?:265 tryCatch webpack://delicate-web/./node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime/runtime.js?:45 invoke webpack://delicate-web/./node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime/runtime.js?:274 method webpack://delicate-web/./node_modules/@umijs/preset-built-in/node_modules/regenerator-runtime/runtime.js?:97 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1988 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 promise callback*resolvePromise webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2127 runCallEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2194 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 proc webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1947 resolveIterator webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2133 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2109 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 runPutEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2176 exec webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1187 flush webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1228 asap webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1201 runPutEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2163 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 runSelectEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2376 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 promise callback*resolvePromise webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2127 runCallEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2194 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2112 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 proc webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1947 resolveIterator webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2133 runEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2109 next webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1992 currCb webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2065 runPutEffect webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2176 exec webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1187 flush webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1228 asap webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1201 chan webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1414 emit webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:1257 sagaMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:2557 createPromiseMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:3604 createPromiseMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:3603 routerMiddleware webpack://delicate-web/./src/.umi-production/plugin-dva/dva.ts+29_modules?:4282 handleOk webpack://delicate-web/./src/pages/login/index.js+8_modules?:193 onFinish webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:4082 submit webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:3900 promise callback*FormStore/this.submit webpack://delicate-web/./node_modules/rc-field-form/es/index.js+18_modules?:3895 onSubmit webpack://delicate-web/./node_modules/rc-field-form/es/index.js+_18_modules?:4139 React 6 layouts__index.e9db34b6.async.js line 1 > eval:2274:7

    i set "SCHEDUAL-NAME=scname" in .env file

    opened by xvwh 0
  • Release version via docker

    Release version via docker

    Currently it's all distributed via source code, and users still need to install their own rust environment or reinstall delicate, which is not a great experience.

    Building the executable via docker will greatly improve the experience.

    Describe the solution you'd like A clear and concise description of what you want to happen.

    Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

    Additional context Add any other context or screenshots about the feature request here.

    opened by BinChengZhao 0
Releases(V1.3.2)
  • V1.3.2(Nov 7, 2021)

  • V1.3.1(Oct 20, 2021)

  • V1.3.0(Oct 19, 2021)

    1. actix-web related dependencies are removed and replaced with poem & tokio.

    2. upgrade multiple dependencies with direct dependencies on tokio 1.0.

    3. global modification of all middleware.

    4. application style change from actix-web to poem & tokio combined style.

    5. full link testing and writing migration logs.

    Source code(tar.gz)
    Source code(zip)
  • V1.2.0(Oct 12, 2021)

    Version 1.2.0 [ pre-release]

    Bug Fixes

    • Pro-macro typo.
    • Casbin-auth issue.
    • Update navigate for front.
    • Update executor-process-bind task mess error
    • Change issue_zh_cn.md
    • Update front-end page fields.

    Documentation

    • Optimize delicate-web's doc.
    • Update Roadmap for poem.
    • Update issue-zh-cn.md
    • Update issues.md
    • Update Changelog
    • Update todo doc.
    • Additional benchmark data.
    • Detailing feat illustration.

    Features

    • Optimization task log
    • Planning log deletion function.
    • Optimize casbin-auth components.
    • Personal Center
    • Casbin-adapter impl.
    • A more complete debugging experience.
    • Response data structure greatly compatible
    • Health-checker optimize.
    • Casbin-adapter intergration.
    • Auth-casbin-eventconsumer basically complete
    • Strong control of casbin.
    • 10 rbac-api are basically completed.
    • Customized runtime environment, debug switch
    • Optimize creation user-info rule.
    • Tracing & flexi_logger to improve log handle

    Fix

    • Operation log details id batch assign issue
    • Change-password api undefined error.

    Miscellaneous Tasks

    • Handle some compile error.
    • Optimize code and append auth-conf.
    • Update doc & Optimize code.
    • Optimize state-desc .
    • Improve casbin-auther.
    • Optimize role-api.
    • Role-api append operation log.
    • User-permission-api optimize.
    • Update dependencies delay-timer.
    • Improve log experience.
    • Optimize span record.

    Performance

    • Optimize task-log deletion fuction.
    Source code(tar.gz)
    Source code(zip)
  • V1.1.0(Oct 4, 2021)

    Version 1.1.0

    • More tracking of user behavior, more advancement of auxiliary functions, and better applications, etc.
    1. stock issues are all solved.

    2. operation logs, login logs, I18N, heartbeat checks, robust event callbacks, related refinements.

    3. Permission module (do research and design model in this period). All notable changes to this project will be documented in this file.

    Documentation

    • Optimize delicate-web's doc.

    Features

    • Log detail & task advance.
    • Explore permission-related features.
    • Implement task-log deletion function.
    • Optimize casbin-auth components.

    Fix

    • Operation log details id batch assign issue.
    • Update executor-process-bind task mess error.

    Miscellaneous Tasks

    • Optimize code & casbin import.
    • Handle some compile errors.
    • Optimize code and append auth-conf.
    • Update doc & Optimize code.
    • Optimize state-desc in API-Response.

    Performance

    • Optimize task-log deletion function.
    Source code(tar.gz)
    Source code(zip)
  • V1.0.1(Jul 28, 2021)

  • V1.0.0(Jul 25, 2021)

    The first version of delicate contains the following modules.

    Executor Group Executor Processor Executor Processor Bind Task Task Instance User Status Data Aggregation Security

    Source code(tar.gz)
    Source code(zip)
Owner
BinCheng
I'm a fan of the rust language, and I'm currently doing some work on distributed and base components.
BinCheng
Task runner and process manager for Rust

Steward Task runner and process manager for Rust. If you're not happy managing your infrastructure with a pile of bash scripts, this crate might be he

Alex Fedoseev 24 Dec 26, 2022
Rust library to ease the task of creating daemons

Rust library to ease the task of creating daemons

Matheus Xavier 38 Nov 25, 2022
Task scheduler for the Internet Computer

IC Cron Makes your IC canister proactive Abstract Canisters are reactive by their nature - they only do something when they're asked by a client or an

Alexander Vtyurin 33 Dec 14, 2022
Cronos - a decentralized task scheduler for Solana

Cronos Cronos is a decentralized task scheduler for Solana. Packages Package Description Version Docs cronos-bot Cronos bot to execute tasks GitBook c

null 174 Dec 26, 2022
Ergo is a low-code IFTTT/Zapier style application, built with Rust and Svelte

Ergo is a low-code IFTTT/Zapier style application, built with Rust and Svelte. Tasks are customizable with Javascript and can contain state machines for more advanced task handling.

Daniel Imfeld 100 Dec 26, 2022
Time-manager of delayed tasks. Like crontab, but synchronous asynchronous tasks are possible, and dynamic add/cancel/remove is supported.

delay-timer Time-manager of delayed tasks. Like crontab, but synchronous asynchronous tasks are possible, and dynamic add/cancel/remove is supported.

BinCheng 255 Dec 30, 2022
Fang - Background job processing library for Rust.

Fang Background job processing library for Rust. Currently, it uses Postgres to store state. But in the future, more backends will be supported.

Ayrat Badykov 421 Dec 28, 2022
Rust library for scheduling, managing resources, and running DAGs 🌙

?? moongraph ?? moongraph is a Rust library for scheduling, managing resources, and running directed acyclic graphs. In moongraph, graph nodes are nor

Schell Carl Scivally 3 May 1, 2023
A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ...

Tokio A runtime for writing reliable, asynchronous, and slim applications with the Rust programming language. It is: Fast: Tokio's zero-cost abstracti

Tokio 18.7k Dec 30, 2022
Rust single-process scheduling. Ported from schedule for Python

Rust single-process scheduling. Ported from schedule for Python, in turn inspired by clockwork (Ruby), and "Rethinking Cron" by Adam Wiggins.

Ben Lovy 13 May 30, 2022
a simple rust service for Scheduling commands execution on time basis, an easy alternative to cron

Tasker A Simple crate which provides a service and a configuration API for genrating commands based tasks ,on time basis. Installation build from sour

Daniel Madmon 5 Jun 1, 2023
open source training courses about distributed database and distributed systemes

Welcome to learn Talent Plan Courses! Talent Plan is an open source training program initiated by PingCAP. It aims to create or combine some open sour

PingCAP 8.3k Dec 30, 2022
Damavand is a quantum circuit simulator. It can run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.

Damavand is a quantum circuit simulator. It can run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.

MichelNowak 0 Mar 29, 2022
Damavand is a quantum circuit simulator. It can run on laptops or High Performance Computing architectures, such CPU distributed architectures or multi GPU distributed architectures.

Damavand is a code that simulates quantum circuits. In order to learn more about damavand, refer to the documentation. Development status Core feature

prevision.io 6 Mar 29, 2022
CrustAGI is an Task-driven Autonomous Agent experiment written in Rust

CrustAGI ?? CrustAGI is an experimental Rust-based implementation of an AI-powered task management system that uses OpenAI and Pinecone APIs to create

Lukas Schmyrczyk 20 Apr 19, 2023
Fluvio is a high-performance distributed streaming platform that's written in Rust

Fluvio is a high-performance distributed streaming platform that's written in Rust, built to make it easy to develop real-time applications.

InfinyOn 1.6k Dec 30, 2022
Spacedrive is an open source cross-platform file explorer, powered by a virtual distributed filesystem written in Rust.

Spacedrive A file explorer from the future. spacedrive.com » Download for macOS · Windows · Linux · iOS · watchOS · Android ~ Links will be added once

Spacedrive 16.2k Jan 7, 2023
A lightweight distributed message queue. Like AWS SQS and RSMQ but on Postgres.

Postgres Message Queue (PGMQ) A lightweight distributed message queue. Like AWS SQS and RSMQ but on Postgres. Features Lightweight - Built with Rust a

Tembo 15 Jul 25, 2023
Garage is a lightweight S3-compatible distributed object store

Garage [ Website and documentation | Binary releases | Git repository | Matrix channel ] Garage is a lightweight S3-compatible distributed object stor

Deuxfleurs 156 Dec 30, 2022
Lightweight p2p library. Support build robust stable connection on p2p/distributed network.

Chamomile Build a robust stable connection on p2p network features Support build a robust stable connection between two peers on the p2p network. Supp

CympleTech 94 Jan 6, 2023