成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

高性能千萬級定時任務(wù)管理服務(wù)forsun laravel插件使用詳解

Muninn / 1121人閱讀

摘要:高性能高精度定時服務(wù),輕松管理千萬級定時任務(wù)。支持任務(wù)到期觸發(fā)和。支持創(chuàng)建延時任務(wù)和定時到期任務(wù),和原生保持相同接口,輕松使用。不支持任務(wù)輸出任務(wù)鉤子及維護模式。是不指定任務(wù)名時自動生成,每個任務(wù)名必須唯一,相同任務(wù)名重復(fù)定義將會自動覆蓋。

Forsun高性能高精度定時服務(wù),輕松管理千萬級定時任務(wù)。

定時服務(wù)項目地址:https://github.com/snower/forsun

laravel插件項目地址: https://github.com/snower/for...

輕松支持千萬級定時任務(wù)調(diào)度。

定時任務(wù)觸發(fā)推送到Queue,輕松支持跨機器和共性能分布式。

支持任務(wù)到期觸發(fā)command、Job、Shell、Http和Event。

支持驅(qū)動原生Laravel Schedule運行。

支持創(chuàng)建延時任務(wù)和定時到期任務(wù),和原生Laravel Schedule保持相同接口,輕松使用。

背景

在實際項目中,存在大量需要定時或是延時觸發(fā)的任務(wù),比如電商中,延時需要檢查訂單是否支付成功,是否配送成功,定時給用戶推送提醒等等,常規(guī)做法是用 crontab 每分鐘掃碼數(shù)據(jù)看是否到達時間,繁瑣且擴展性伸縮性較差。

使用 forsun 服務(wù),可以簡單的針對每一個訂單創(chuàng)建一個定時任務(wù),配合異步隊列,可以輕松實現(xiàn)擴展性伸縮性,Apache Thrift 的編程接口也可以很容易的和 celery、laravel 配合。

其他場景下,比如失敗延時重試,使用 forsun 定時服務(wù)也可以很簡單就可以實現(xiàn)。

安裝

安裝啟動forsun服務(wù),詳情請看 https://segmentfault.com/a/11...。

composer安裝forsun-laravel。

composer require "snower/forsun-laravel"
配置

在 config/app.php 注冊 ServiceProvider 和 Facade

"providers" => [
    // ...
    SnowerLaravelForsunServiceProvider::class,
],
"aliases" => [
    // ...
    "Forsun" => SnowerLaravelForsunFacade::class,
],

創(chuàng)建配置文件

php artisan vendor:publish --provider="SnowerLaravelForsunServiceProvider"

修改應(yīng)用根目錄下的 config/forsun.php 中對應(yīng)的參數(shù)即可。

使用 定義調(diào)度

Artisan 命令調(diào)度。

//不指定name是自動生成
Forsun::plan()->command("emails:send --force")->daily();

//指定name
Forsun::plan("email")->command(EmailsCommand::class, ["--force"])->daily();

隊列任務(wù)調(diào)度

Forsun::plan()->job(new Heartbeat)->everyFiveMinutes();

Shell 命令調(diào)度

Forsun::plan()->exec("node /home/forge/script.js")->daily();

Event事件調(diào)度

Forsun::plan()->fire("testevent", [])->everyMinute();

Http事件調(diào)度

Forsun::plan()->http("http://www.baidu.com")->everyMinute();

注意:

每個任務(wù)只能設(shè)置一次調(diào)度頻率。

不支持任務(wù)輸出、任務(wù)鉤子及維護模式。

Forsun::plan是不指定任務(wù)名時自動生成,每個任務(wù)名必須唯一,相同任務(wù)名重復(fù)定義將會自動覆蓋。

移除調(diào)度
$plan = Forsun::plan()->command("emails:send --force")->daily();
$plan->remove();

$plan = Forsun::plan()->command("emails:send --force")->daily();
$plan_name = $plan->getName();
Forsun::remove($plan_name);
調(diào)度頻率設(shè)置
方法 描述
->hourly(); 每小時運行
->hourlyAt(17); 每小時的第 17 分鐘執(zhí)行一次任務(wù)
->daily(); 每天午夜執(zhí)行一次任務(wù)
->dailyAt("13:00"); 每天的 13:00 執(zhí)行一次任務(wù)
->monthly(); 每月執(zhí)行一次任務(wù)
->monthlyOn(4, "15:00"); 在每個月的第四天的 15:00 執(zhí)行一次任務(wù)
->everyMinute(); 每分鐘執(zhí)行一次任務(wù)
->everyFiveMinutes(); 每五分鐘執(zhí)行一次任務(wù)
->everyTenMinutes(); 每十分鐘執(zhí)行一次任務(wù)
->everyFifteenMinutes(); 每十五分鐘執(zhí)行一次任務(wù)
->everyThirtyMinutes(); 每半小時執(zhí)行一次任務(wù)
->at(strtoetime("2018-03-05 12:32:12")); 在指定時間2018-03-05 12:32:12運行一次
->interval(10); 從當(dāng)前時間開始計算每10秒運行一次
->later(5); 從當(dāng)前時間開始計算稍后5秒運行一次
->delay(30); 從當(dāng)前時間開始計算稍后30秒運行一次

需要復(fù)雜定時控制建議生成多個定時任務(wù)或是在處理器中再次發(fā)起定時任務(wù)計劃更簡便同時也性能更高。

調(diào)度器應(yīng)該盡可能使用Event或是Job通過Queue Work可以更高性能運行。

驅(qū)動原生Laravel Schedule運行
#注冊
php artisan forsun:schedule:register

#取消注冊
php artisan forsun:schedule:unregister

原文鏈接: https://blog.snower.me/2018/0...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/28358.html

相關(guān)文章

  • 有贊業(yè)務(wù)對賬平臺的探索與實踐

    摘要:業(yè)務(wù)對賬平臺的核心目的,就是及時發(fā)現(xiàn)類似問題,并及時修復(fù)。這對對賬平臺的吞吐量造成了挑戰(zhàn)。五健康度對賬中心可以拿到業(yè)務(wù)系統(tǒng)及其所在整個鏈路的數(shù)據(jù)一致性信息。在分布式環(huán)境下,沒有人能回避數(shù)據(jù)一致性問題,我們對此充滿著敬畏。 一、引子 根據(jù)CAP原理,分布式系統(tǒng)無法在保證了可用性(Availability)和分區(qū)容忍性(Partition)之后,繼續(xù)保證一致性(Consistency)。我...

    wangjuntytl 評論0 收藏0
  • UPYUN Open Talk :同盾,從零打造萬級實時風(fēng)控云服務(wù)

    摘要:同盾技術(shù)總監(jiān)張新波在第二期移動時代互聯(lián)網(wǎng)金融的架構(gòu)趨勢中闡述了同盾是如何從零開始打造千萬級實時風(fēng)控云服務(wù),具體介紹了同盾系統(tǒng)平臺構(gòu)建過程中主要需要解決的三大難題,以及解決這些問題的具體時實踐過程。 同盾科技,是由阿里、Paypal 反欺詐專家創(chuàng)建的,國內(nèi)第一家風(fēng)險控制與反欺詐云服務(wù)提供商,其涉及領(lǐng)域包括電商、B2B、互聯(lián)網(wǎng)金融、游戲等。同盾技術(shù)總監(jiān)張新波在 UPYUN Open ...

    malakashi 評論0 收藏0
  • 萬級消息設(shè)計--初級篇(二)

    摘要:需求用戶個人消息,平臺消息平臺給所有人發(fā)送消息。原因如果平臺用戶量較大時,假如萬,發(fā)一條系統(tǒng)消息,將要給萬的人發(fā)送一條,就是的消息記錄。千萬級的數(shù)據(jù)表,后期通過索引優(yōu)化,結(jié)構(gòu)優(yōu)化,業(yè)務(wù)邏輯優(yōu)化,避免大量并發(fā)查詢。 說明 本文都是參加工作的實際情況,希望對大家有所幫助。—— 螞蟻爬樹不怕高,有心學(xué)習(xí)不怕老。 需求 1.用戶個人消息,平臺消息(平臺給所有人發(fā)送消息)。2.用戶未讀消息展示,...

    youkede 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<