摘要:廢話不說,直接上代碼守護(hù)進(jìn)程阿波羅同步
廢話不說,直接上代碼
"http://10.208.204.46:8161", "query" => [ "app_id" => "wuc", "cluster" => "default", "namespace" => "application", ] ];
守護(hù)進(jìn)程
namespace AppConsoleCommandsApollo; use GuzzleHttpClient; use IlluminateConsoleCommand; use IlluminateSupportArr; use IlluminateSupportFacadesStorage; class SyncCommand extends Command { /** * The name and signature of the console command. * * @var string */ protected $signature = "ue:apollo:sync"; /** * The console command description. * * @var string */ protected $description = "阿波羅同步"; protected $config = []; protected $url; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); $this->url = config("apollo.server") . "/configs/" . implode("/", array_values(config("apollo.query"))); } /** * Execute the console command. * * @return mixed */ public function handle() { $this->doSync(); } protected function doSync() { $client = new Client(["timeout" => 2.00]); try { $response = $client->request("GET", $this->url); $body = json_decode($response->getBody()->getContents(), true); $cfg = Arr::get($body, "configurations", []); if (!$cfg) { return true; } $cfg = array_map(function ($value) { if ($row = json_decode($value, true)) { return $row; } return $value; }, $cfg); $items = []; foreach ($cfg as $key => $value) { data_set($items, $key, $value); } foreach ($items as $k => $item) { $this->line("Saving [".$k."]"); $this->save($k, $item); } } catch (Exception $ex) { $this->error($ex->getMessage()); } } protected function save($fileName, $item) { if(config("apollo.sync.redis", false)){ cache()->tags("apollo")->forever($fileName, $item); $this->line("Saving To Redis ".$fileName); } if(config("apollo.sync.file", false)){ $this->line("Saving To File ".$fileName); $fileName = "apollo/" . $fileName . ".php"; ksort($item); $content = implode(" ", [ "put($fileName, $content); } $this->line("=================="); } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30922.html
摘要:基于的動(dòng)態(tài)配置推送。對(duì)于任務(wù)中心這種多任務(wù)平臺(tái)型的配置,有一定影響。基于回調(diào)和配置的擴(kuò)展點(diǎn)流程共建在建中通過擴(kuò)展點(diǎn)共建方式,將流程編排的能力,暴露給內(nèi)外部的開發(fā)者,完成任務(wù)中心的共建。 一、聊聊本文想說什么: ??為更好幫助商家的會(huì)員快速成長(zhǎng),保持用戶活性,完善用戶的成長(zhǎng)體系,有贊用戶中心-會(huì)員成長(zhǎng)團(tuán)隊(duì)基于現(xiàn)有的業(yè)務(wù)場(chǎng)景,設(shè)計(jì)了一套較完備任務(wù)中心系統(tǒng)。同時(shí)也有很多通用技術(shù)組件能夠落地。...
摘要:零為何要學(xué)源碼簡(jiǎn)單,是我現(xiàn)在看起來最簡(jiǎn)單的源碼不會(huì)像封裝了一層又一層,把人繞暈,而沒有那么多封裝,上手快,我們學(xué)習(xí)就應(yīng)該從簡(jiǎn)單的開始憑什么非要去學(xué)封的像粽子一樣的源碼,我們就是要去學(xué)簡(jiǎn)簡(jiǎn)單單,平時(shí)樸素,接地氣的源碼最接近業(yè)務(wù)代碼的源碼。 零 為何要學(xué)apollo源碼 1 簡(jiǎn)單,Apollo是我現(xiàn)在看起來最簡(jiǎn)單的源碼不會(huì)像spring封裝了一層又一層,把人繞暈,而apollo沒有那么多封...
摘要:這樣做的方式是簡(jiǎn)單,缺點(diǎn)是無法及時(shí)獲取變更推模式規(guī)則中心統(tǒng)一推送,客戶端通過注冊(cè)監(jiān)聽器的方式時(shí)刻監(jiān)聽變化,比如使用等配置中心。 在前面的學(xué)習(xí)過程中,Sentinel 的規(guī)則,也就是我們之前定義的限流規(guī)則,是通過代碼的方式定義好的。這是初始化時(shí)需要做的事情,Sentinel 提供了基于API的方式修改規(guī)則: FlowRuleManager.loadRules(List rules); /...
摘要:工具軟件欲先攻其事必先利其器,用好工具是做好開發(fā)的基礎(chǔ)??蚣苣壳白盍餍泻?jiǎn)單易用,越來越多人用曾經(jīng)很流行,現(xiàn)在有點(diǎn)衰退狀態(tài)管理后端渲染開發(fā)工具依賴管理,應(yīng)用打包,任務(wù)管理,編輯器擴(kuò)展,,移動(dòng)端有了前端的知識(shí)后,我們還可以開發(fā)手機(jī)。 2019年即將到來,各位同學(xué)2018年辛苦了。 不管大家2018年過的怎么樣,2019年還是要繼續(xù)加油的! 在此我整理了個(gè)人認(rèn)為在2019仍是或者將成為主流的...
摘要:百度世界發(fā)布劃時(shí)代產(chǎn)品,軟硬件結(jié)合更懂智能生活月日,百度世界大會(huì)在北京盛大舉行。百度已與一汽集團(tuán)簽署戰(zhàn)略合作協(xié)議,共同推動(dòng)該項(xiàng)技術(shù)產(chǎn)品落地。渡鴉在會(huì)上同時(shí)公布了另外兩款即將面世的產(chǎn)品。 百度世界發(fā)布劃時(shí)代產(chǎn)品,軟硬件結(jié)合更懂智能生活 11 月 16 日,2017 百度世界大會(huì)在北京盛大舉行。百度在會(huì)上發(fā)布了手機(jī)百度 10.0 和全新人工智能硬件Raven H等軟硬件產(chǎn)品。百度董事長(zhǎng)兼首...
閱讀 2585·2021-09-26 10:13
閱讀 6000·2021-09-08 10:46
閱讀 696·2019-08-30 15:53
閱讀 2970·2019-08-29 16:13
閱讀 2763·2019-08-26 12:23
閱讀 3490·2019-08-26 11:24
閱讀 1097·2019-08-23 18:09
閱讀 1036·2019-08-23 17:08