国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

開源:Taurus.DTS 微服務(wù)分布式任務(wù)框架,支持即時任務(wù)、延時任務(wù)、Cron表達(dá)式定時任務(wù)和廣播任務(wù)。

這篇具有很好參考價值的文章主要介紹了開源:Taurus.DTS 微服務(wù)分布式任務(wù)框架,支持即時任務(wù)、延時任務(wù)、Cron表達(dá)式定時任務(wù)和廣播任務(wù)。。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言:

在發(fā)布完:開源:Taurus.DTC 微服務(wù)分布式事務(wù)框架,支持 .Net 和 .Net Core 雙系列版本,之后想想,好像除了事務(wù)外,感覺里面多了一個任務(wù)發(fā)布訂閱的基礎(chǔ)功能。

本想既然都有了基礎(chǔ)發(fā)布訂閱功能了,那要不要順帶加上延時發(fā)布功能呢?加上了會不會讓事務(wù)組件不純了?

經(jīng)過一翻深思,是在其上補上功能,還是,重新寫一個組件,起初起名是個難題,因為 DTC 也可以是 Distributed Task Cxxxxx, 組件重名了?

經(jīng)過一翻英文大作戰(zhàn),找到了:Distributed?Task?Scheduler,簡寫可以是DTS了,才開始重啟一個組件。

于是就有了這個Taurus.DTS 任務(wù)組件,而且功能除了原有的即時任務(wù)發(fā)布訂閱,和本來想加上的延時任務(wù),后面又補上了基于Cron表達(dá)式的定時任務(wù),和廣播群發(fā)任務(wù)。

經(jīng)過一翻大作戰(zhàn),有 Taurus.DTC 的基礎(chǔ)代碼作底層支持,花了大幾天,解決了各種疑難雜癥之后,終于出來了。

1、開源地址:

https://github.com/cyq1162/Taurus.DTS

開源:Taurus.DTS 微服務(wù)分布式任務(wù)框架,支持即時任務(wù)、延時任務(wù)、Cron表達(dá)式定時任務(wù)和廣播任務(wù)。

2、Nuget?包引用ID:

由于?CYQ.Data?Orm 組件本身支持10多種數(shù)據(jù)庫,因此提供的包,只根據(jù)消息隊列的需要分拆提供。

默認(rèn)Taurus.DTS 支持同時使用?RabbitMQ?和 Kafka?兩種消息隊列。

如果一個項目中只用RabbitMQ,則引入 Tarurus.DTS.RabbitMQ,減少對 Kafka?的依賴包。

開源:Taurus.DTS 微服務(wù)分布式任務(wù)框架,支持即時任務(wù)、延時任務(wù)、Cron表達(dá)式定時任務(wù)和廣播任務(wù)。

編繹的版本:支持太多,發(fā)布是個苦力活:

.Net 系列:由于引用依賴關(guān)系(RabbitMQ最低是 4.0,Kafka最低是 4.5);

.Net Core系列、支持 2.18.0 版本及以后。

Standard 標(biāo)準(zhǔn)庫:支持2.1 及以后。

開源:Taurus.DTS 微服務(wù)分布式任務(wù)框架,支持即時任務(wù)、延時任務(wù)、Cron表達(dá)式定時任務(wù)和廣播任務(wù)。

3、Taurus.DTS 微服務(wù)分布式任務(wù)框架基礎(chǔ)說明:

基礎(chǔ)說明:

1、框架分為: Client(客戶端,即任務(wù)發(fā)起端)和 Server(服務(wù)端,即方法訂閱方)。

2、框架支持:即時任務(wù)、延時任務(wù)、Cron表達(dá)式任務(wù)定時任務(wù)、廣播任務(wù),四種方式。

3、項目需要配置的參數(shù):1、數(shù)據(jù)庫(可選);2、MQ(必選)。

數(shù)據(jù)存儲:

可選擇數(shù)據(jù)庫(MSSQL、MySql、Oracle、PostgreSql 等 CYQ.Data 所支持的10多種數(shù)據(jù)庫之一)

MSSQL配置示例如下:

{
  "ConnectionStrings": {
    "DTS.Server.Conn": "server=.;database=MSLog;uid=sa;pwd=123456"
  }
}
 

消息隊列:

目前消息隊列支持 RabbitMQ 或者 Kafka(配置其中一方即可):

{
  "AppSettings": {
  "DTS.Server.Rabbit":"127.0.0.1;guest;guest;/",//ip;username;password;virtualpath;
  "DTS.Server.Kafka":"127.0.0.1:9092" 
  }
}

以上配置為Server端,客戶端更改 Server 為 Client 即可。

4、Server 端 使用示例:

1、Nuget 搜索 Taurus.DTS 引入工程項目中。

2、如果是 ASP.Net Core 程序:Program 或 Startup 添加服務(wù)使用引入:

  services.AddTaurusDts(); // 服務(wù)添加。
  app.UseTaurusDts(TaskStartType.Server); //服務(wù)使用,啟用服務(wù)端

3、appsettings.json 配置基本屬性:

  {
  "ConnectionStrings": {
    "DTS.Server.Conn": "host=localhost;port=3306;database=cyqdata;uid=root;pwd=123456;Convert Zero Datetime=True;"
  },
  "AppSettings": {
    "DTS.Server.Rabbit": "127.0.0.1;guest;guest;/" //IP;UserName;Password;VirtualPaath
}

4、選擇數(shù)據(jù)庫對應(yīng)的依賴組件,如MySql,可以:

Nuget 上可以搜索 MySql.Data 、或者 CYQ.Data.MySql (會自動引入MySql.Data)  都可, 引入項目即可。

5、代碼編寫,可以參考源碼中提供的示例代碼,如下為控制臺示例代碼:

using System;
using Taurus.Plugin.DistributedTask;
namespace Console_App_Server {

 internal class Program
 {
 
     static void Main(string[] args)
    {

        DTSConfig.Server.Rabbit = "127.0.0.1;guest;guest;/";
        //DTSConfig.Server.Kafka = "127.0.0.1:9092;";
        //DTSConfig.Server.Conn = DTSConfig.Client.Conn;

        DTSConfig.ProjectName = "ConsoleApp5";

        DTS.Server.Start();//start client and server

        Console.WriteLine("---------------------------------------");

        Console.ReadLine();
    }


}


/// <summary>
/// 服務(wù)端 server class need to public
/// </summary>
public class Server
{
    [DTSSubscribe("DoInstantTask")]
    public static bool A(DTSSubscribePara para)
    {
        para.CallBackContent = "show you a.";
        return true;
    }

    [DTSSubscribe("DoDelayTask")]
    private static bool B(DTSSubscribePara para)
    {
        para.CallBackContent = "show you b.";
        return true;
    }
    [DTSSubscribe("DoCronTask")]
    private static bool C(DTSSubscribePara para)
    {
        para.CallBackContent = "show you c.";
        return true;
    }
    /// <summary>
    /// 定時任務(wù)
    /// </summary>
    [DTSSubscribe("DoBroadastTask")]
    private static bool TimerTask(DTSSubscribePara para)
    {
        para.CallBackContent = "show you d.";
        return true;
    }
}
 
}

5、Client 端 使用示例:

1、Nuget 搜索 Taurus.DTS 引入工程項目中。

2、如果是ASP.Net Core 程序:Program 或 Startup 添加服務(wù)使用引入:

  services.AddTaurusDts(); // 服務(wù)添加
  app.UseTaurusDts(StartType.Client); //服務(wù)使用,啟用服務(wù)端

3、appsettings.json 配置基本屬性:

  {
  "ConnectionStrings": {
    "DTS.Client.Conn": "host=localhost;port=3306;database=cyqdata;uid=root;pwd=123456;Convert Zero Datetime=True;"
  },
  "AppSettings": {
    "DTS.Client.Rabbit": "127.0.0.1;guest;guest;/" //IP;UserName;Password;VirtualPaath
}

4、選擇數(shù)據(jù)庫對應(yīng)的依賴組件,如MySql,可以:

Nuget 上可以搜索 MySql.Data 、或者 CYQ.Data.MySql (會自動引入MySql.Data)  都可, 引入項目即可。

5、代碼編寫,可以參考源碼中提供的示例代碼,如下為控制臺示例代碼:

using System;
using System.Threading;
using Taurus.Plugin.DistributedTask;
namespace Console_App_Client {

  internal class Program
  {
  
    static void Main(string[] args)
    {
    
        DTSConfig.Client.IsPrintTraceLog = false;
        //AppConfig.Redis.Servers = "127.0.0.1:6379";

        DTSConfig.Client.Rabbit = "127.0.0.1;guest;guest;/";
        //DTSConfig.Client.Kafka = "127.0.0.1:9092;";
        DTSConfig.Client.Conn = "server=.;database=mslog;uid=sa;pwd=123456";

        DTSConfig.ProjectName = "ConsoleApp5";

        DTS.Client.Start();//start client and server
        
        Console.WriteLine("---------------------------------------");
        Console.WriteLine("1-InstantTask、2-DelayTask(1Minutes)、3-CronTask、4-DeleteCronTask、5-BroadastTask");
        Console.WriteLine("Input :1、2、3、4、5,Press Enter.");
        while (true)
        {
            string line = Console.ReadLine();
            try
            {
                Client.Run(int.Parse(line));
            }
            catch(Exception err)
            {
                Console.WriteLine(err.Message);
            }
            
        }

    }
}

/// <summary>
/// 客戶端 client class need to public if has callback method.
/// </summary>
public class Client
{
    public static void Run(int i)
    {

        if (i == 2)
        {
            //發(fā)布一個延時1分鐘的任務(wù)
            DTS.Client.Delay.PublishAsync(1, "i publish a delay task.", "DoDelayTask", "DelayCallBack");
            Console.WriteLine("Wait for 1 minute...");
        }
        else if (i == 3)
        {
            //發(fā)布一個秒在30時的循環(huán)任務(wù)。
            DTS.Client.Cron.PublishAsync("10,30,50 * * * * ?", "i publish a timer task with cron express.", "DoCronTask", "CronCallBack");
            Console.WriteLine("Wait for execute task when second is 10,30,50...");
        }
        else if (i == 4)
        {
            //發(fā)布一個秒在30時的循環(huán)任務(wù)。
            DTS.Client.Cron.DeleteAsync("DoCronTask", null, "CronCallBack");
        }
        else if (i == 5)
        {
            //發(fā)布一個廣播任務(wù)
            DTS.Client.Broadast.PublishAsync("i publish a task for all server.", "DoBroadastTask", "BroadastCallBack");
        }
        else
        {
            for (int k = 0; k < 1; k++)
            {
                //發(fā)布一個即時任務(wù)
                DTS.Client.Instant.PublishAsync("i publish a task instantly.", "DoInstantTask", "InstantCallBack");
                Console.WriteLine(k);
            }
            
        }
    }

    [DTSCallBack("InstantCallBack")]
    [DTSCallBack("DelayCallBack")]
    [DTSCallBack("CronCallBack")]
    [DTSCallBack("BroadastCallBack")]
    private static void OnCallBack(DTSCallBackPara para)
    {
        Console.WriteLine("Client callback : " + para.TaskType + " - " + para.CallBackKey + " - " + para.CallBackContent);
    }
}
 
}

6、Demo?運行示例:

demo?地址:https://github.com/cyq1162/Taurus.DTS/tree/master/demo

啟動運行截圖:

開源:Taurus.DTS 微服務(wù)分布式任務(wù)框架,支持即時任務(wù)、延時任務(wù)、Cron表達(dá)式定時任務(wù)和廣播任務(wù)。

?輸入1,發(fā)布即時任務(wù):

開源:Taurus.DTS 微服務(wù)分布式任務(wù)框架,支持即時任務(wù)、延時任務(wù)、Cron表達(dá)式定時任務(wù)和廣播任務(wù)。

7、其它:CYQ.Data?支持的數(shù)據(jù)庫鏈接語句示例

###--------------------------------------------------------###

   Txt::  Txt Path=E:\
   Xml::  Xml Path=E:\
Access::  Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\cyqdata.mdb
Sqlite::  Data Source=E:\cyqdata.db;failifmissing=false;
 MySql::  host=localhost;port=3306;database=cyqdata;uid=root;pwd=123456;Convert Zero Datetime=True;
 Mssql::  server=.;database=cyqdata;uid=sa;pwd=123456;provider=mssql; 
Sybase::  data source=127.0.0.1;port=5000;database=cyqdata;uid=sa;pwd=123456;provider=sybase; 
Postgre:  server=localhost;uid=sa;pwd=123456;database=cyqdata;provider=pg; 
    DB2:  Database=SAMPLE;User ID=administrator;Server=127.0.0.1;password=1234560;provider=db2; 
FireBird  user id=SYSDBA;password=123456;database=d:\\test.dbf;server type=Default;data source=127.0.0.1;port number=3050;provider=firebird;
Dameng::  user id=SYSDBA;password=123456789;data source=127.0.0.1;schema=test;provider=dameng;
KingBaseES server=127.0.0.1;User Id=system;Password=123456;Database=test;Port=54321;schema=public;provider=kingbasees;
Oracle ODP.NET::
Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SID = orcl)));User ID=sa;password=123456

由于各種數(shù)據(jù)庫鏈接語句基本一致,除了特定寫法外,可以通過鏈接補充:provider=mssql、provider=mysql、provider=db2、provider=postgre等來區(qū)分。
###--------------------------------------------------------###

8、總結(jié):

由于 Taurus.DTS?分布式任務(wù)發(fā)布組件的獨立發(fā)布,原有發(fā)布的 Taurus.DTC?分布式事務(wù)組件,下一版本會移除掉其基礎(chǔ)的任務(wù)發(fā)布訂閱功能,保留事務(wù)的純潔屬性。

今天發(fā)布的 Taurus.DTS 組件,為 .Net?和? .Net?Core?微服務(wù)系列又又貢獻(xiàn)了一個新的組件。

后續(xù)會發(fā)布分布式鎖的教程,這個已經(jīng)在 CYQ.Data?里實現(xiàn)了,并且在也在 Taurus.DTC?和 Taurus.DTS?中使用到了。文章來源地址http://www.zghlxwxcb.cn/news/detail-801507.html

到了這里,關(guān)于開源:Taurus.DTS 微服務(wù)分布式任務(wù)框架,支持即時任務(wù)、延時任務(wù)、Cron表達(dá)式定時任務(wù)和廣播任務(wù)。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 分布式異步任務(wù)框架celery

    Celery是一個基于消息中間件的分布式任務(wù)隊列框架,專門用于處理異步任務(wù)。它允許生產(chǎn)者發(fā)送任務(wù)到消息隊列,而消費者則負(fù)責(zé)處理這些任務(wù)。Celery的核心特性包括異步執(zhí)行、實時操作支持以及強大的調(diào)度能力,使其每天可以處理數(shù)以百萬計的任務(wù)。 在Celery中,任務(wù)是以

    2024年04月10日
    瀏覽(23)
  • 分布式定時任務(wù)框架 PowerJob

    分布式定時任務(wù)框架 PowerJob

    1.1 為什么需要使用定時任務(wù)調(diào)度 (1)時間驅(qū)動處理場景:整點發(fā)送優(yōu)惠券,每天更新收益,每天刷新標(biāo)簽數(shù)據(jù)和人群數(shù)據(jù)。 (2)批量處理數(shù)據(jù):按月批量統(tǒng)計報表數(shù)據(jù),批量更新短信狀態(tài),實時性要求不高。 (3)異步執(zhí)行解耦:活動狀態(tài)刷新,異步執(zhí)行離線查詢,與內(nèi)部

    2024年02月09日
    瀏覽(25)
  • 開源.NET8.0小項目偽微服務(wù)框架(分布式、EFCore、Redis、RabbitMQ、Mysql等)

    開源.NET8.0小項目偽微服務(wù)框架(分布式、EFCore、Redis、RabbitMQ、Mysql等)

    為什么說是偽微服務(wù)框架,常見微服務(wù)框架可能還包括服務(wù)容錯、服務(wù)間的通信、服務(wù)追蹤和監(jiān)控、服務(wù)注冊和發(fā)現(xiàn)等等,而我這里為了在使用中的更簡單,將很多東西進(jìn)行了簡化或者省略了。 年前到現(xiàn)在在開發(fā)一個新的小項目,剛好項目最初的很多功能是比較通用的,所以

    2024年03月09日
    瀏覽(21)
  • 分布式定時任務(wù)調(diào)度框架Quartz

    分布式定時任務(wù)調(diào)度框架Quartz

    Quartz是一個定時任務(wù)調(diào)度框架,比如你遇到這樣的問題: 比如淘寶的待支付功能,后臺會在你生成訂單后24小時后,查看訂單是否支付,未支付則取消訂單 比如vip的每月自動續(xù)費功能 … 想定時在某個時間,去做某件事 Quartz是一套輕量級的任務(wù)調(diào)度框架,只需要定義了 Job(

    2024年02月04日
    瀏覽(37)
  • .NET CORE開源 DDD微服務(wù) 支持 多租戶 單點登錄 多級緩存、自動任務(wù)、分布式、日志、授權(quán)和鑒權(quán) 、網(wǎng)關(guān) 、注冊與發(fā)現(xiàn) 系統(tǒng)架構(gòu) docker部署

    .NET CORE開源 DDD微服務(wù) 支持 多租戶 單點登錄 多級緩存、自動任務(wù)、分布式、日志、授權(quán)和鑒權(quán) 、網(wǎng)關(guān) 、注冊與發(fā)現(xiàn) 系統(tǒng)架構(gòu) docker部署

    源代碼地址https://github.com/junkai-li/NetCoreKevin 基于NET6搭建跨平臺DDD思想WebApi架構(gòu)、IDS4單點登錄、多緩存、自動任務(wù)、分布式、多租戶、日志、授權(quán)和鑒權(quán)、CAP、SignalR、 docker部署? 如需簡約項目可直接去除項目引用 解耦設(shè)計都可以單獨引用 架構(gòu)默認(rèn)全部引用并啟動 項目啟動時

    2023年04月24日
    瀏覽(20)
  • 使用Docker部署開源分布式任務(wù)調(diào)度系統(tǒng)DolphinScheduler

    使用Docker部署開源分布式任務(wù)調(diào)度系統(tǒng)DolphinScheduler

    ?? 博客主頁 : 小羊失眠啦. ?? 系列專欄 : 《C語言》 《數(shù)據(jù)結(jié)構(gòu)》 《Linux》 《Cpolar》 ?? 感謝大家點贊??收藏?評論?? 前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到網(wǎng)站。 本篇教程和大家分享一下DolphinSc

    2024年02月05日
    瀏覽(47)
  • 太強了!全新一代分布式任務(wù)調(diào)度與計算框架!

    大家好,我是 Java陳序員 。 我們在工作開發(fā)中,離不開任務(wù)調(diào)度。通過指定的間隔時間執(zhí)行各類操作,來完成無需用戶操作的任務(wù)。 目前市場上,有一些編程語言本身自帶的定時任務(wù)工具,如 Java 中 Timer。也有一些比較成熟的定時任務(wù)框架,如 Quartz。現(xiàn)在大部分系統(tǒng)都是使

    2024年02月03日
    瀏覽(29)
  • 分布式任務(wù)調(diào)度框架Power-Job

    分布式任務(wù)調(diào)度框架Power-Job

    在大型業(yè)務(wù)業(yè)務(wù)系統(tǒng)中,不可避免會出現(xiàn)一些需要定時執(zhí)行需求的場景,例如定時同步數(shù)據(jù),定時清洗數(shù)據(jù),定時生成報表,大量機器一同執(zhí)行某個任務(wù),甚至有些需要分布式處理的任務(wù)例如需要更新一大批數(shù)據(jù),單機耗時太長需要進(jìn)行任務(wù)分發(fā),利用集群的計算能力等等

    2024年02月04日
    瀏覽(51)
  • 開源分布式任務(wù)調(diào)度系統(tǒng)DolphinScheduler本地部署與遠(yuǎn)程訪問

    開源分布式任務(wù)調(diào)度系統(tǒng)DolphinScheduler本地部署與遠(yuǎn)程訪問

    本篇教程和大家分享一下DolphinScheduler的安裝部署及如何實現(xiàn)公網(wǎng)遠(yuǎn)程訪問,結(jié)合內(nèi)網(wǎng)穿透工具實現(xiàn)公網(wǎng)訪問DolphinScheduler內(nèi)網(wǎng)并進(jìn)行遠(yuǎn)程辦公,幫助開發(fā)人員進(jìn)行遠(yuǎn)程任務(wù)調(diào)度及管理,提高工作效率。 DolphinScheduler是一款開源的分布式任務(wù)調(diào)度系統(tǒng),它可以幫助開發(fā)人員更加方

    2024年02月03日
    瀏覽(46)
  • springcloud:新一代分布式定時任務(wù)框架——PowerJob

    springcloud:新一代分布式定時任務(wù)框架——PowerJob

    之前我們講解過主流的分布式定時任務(wù)框架xxl-job,隨著技術(shù)的迭代更新,更多的定時任務(wù)框架也開始出現(xiàn),今天我們來看一看新一代的定時任務(wù)框架 PowerJob PowerJob是基于java開發(fā)的企業(yè)級的分布式任務(wù)調(diào)度平臺,與xxl-job一樣,基于web頁面實現(xiàn)任務(wù)調(diào)度配置與記錄,使用簡單,

    2024年02月02日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包