原创 使用 swoole 實現進程的守護(三)

在上一篇文章《使用 swoole 實現進程的守護(二)》中,實現了一個能通過讀取配置同時守護多個腳本的 Daemon 類。本文嘗試繼續擴展這個 Daemon 類,讓它能夠在不重啓進程的情況下實現配置的重載。最常見的一種熱重載的方式,就是向進

原创 使用 SWOOLE 實現進程的守護(二)

在上一篇文章《使用 swoole 實現進程的守護(一)》中,初步實現了一個能自動重啓子進程的 Daemon 類。但是這個 Daemon 類有一個很明顯的缺點,就是隻支持單個子進程的守護。 一、支持守護多個腳本程序 實際情況下,通常都會有多個

原创 使用 SWOOLE 實現進程的守護(一)

一、 進程守護使用場景。 後端經常會有類似這樣的場景,某個腳本,需要不斷的重複運行,這個時候,最好有一個守護程序,幫助我們不斷地自動地拉起這些腳本進程,讓它自動地重複運行。 在 Linux/Unix 系統下,supervisor 就是使用

原创 LINUX 如何查看系統負載

操作系統的負載狀態,反映了應用程序的資源使用情況,從中能找出應用程序優化的瓶頸所在。 系統平均負載,是指處於運行或不可打擾狀態的進程的平均數。處於運行,表示運行態,佔用CPU,或就緒態,等待CPU調度。不可打擾,表示阻塞,正在等待I/O 在

原创 爲什麼編程是獨一無二的職業?

導讀:此文翻譯自Nalaka Gamage的《爲什麼編程是獨一無二的職業》的演講稿。 1. 簡介 有些人說編程很難,有些人認爲很容易。 編程不僅依賴你的能力,而且還取決你工作的態度。 編程的確很難,但比起那些需要僞裝、欺騙和表演來生活的

原创 編程語言中的 DUCK TYPING

如果一隻動物走起來像鴨子、游泳起來像鴨子、叫起來也像鴨子,那麼這隻動物就可以被稱爲鴨子。 許多編程語言都支持 Duck Typing ,通常 Duck Typing 是動態編程語言用來實現多態的一種方式。 在理解 Duck Typing 前

原创 MongoDB – 使用模式構建之屬性模式

簡單描述:直接進入瞭解屬性模式。它特別適合以下的情況: 有一個大的文檔,但是它其實擁有一些相似的字段,而且這些字段的一個子集具有相同的特徵,最後其實需要對這些子集字段進行排序或者查詢; 實際上也不是所有文檔都會出現需要的排序字段; 或者上

原创 MongoDB – 使用模式構建之多態模式

簡述:當集合中的所有文檔都具有相似但不相同的結構時,我們將其稱爲多態模式 實例:實際業務中需要用到是用戶帖子,帖子的大致結構是相同的,但是其具體內容是根據不同帖子類型需要顯示內容是不同的。所以這個時候使用多態模式比較適合,單個查詢可以便可以

原创 軟件工程入門-輕鬆理解依賴注入 (DI) 和 IoC 容器

爲了更好的理解依賴注入 (DI) 和 IOC 容器的概念,我們先設計一個場景。現在你餓了,準備要享用一個晚餐,那麼你可能要做的事情有購買食材,烹飪食材,享用食物。 晚餐的類設計看起來應該像是這樣的: <?php namespace Ioc;

原创 PHP 併發場景的幾種解決方案

在秒殺,搶購等併發場景下,可能會出現超賣的現象,在PHP語言中並沒有原生提供併發的解決方案,因此就需要藉助其他方式來實現併發控制。 列出常見的解決方案有: 使用隊列,額外起一個進程處理隊列,併發請求都放到隊列中,由額外進程串行處理,併發問