php-resque 是乙個基於 redis 的佇列庫,是 resque 專案的 php fork 版本。
使用 php-resque 之前,需要先安裝,可以使用 composer 進行。
$ composer require sinacloud/php-resque:dev-masterloading composer repositories with package information
updating dependencies (including require-dev)
- installing colinmollenhour/credis (1.7)
loading from cache
- installing psr/log (1.0.0)
loading from cache
- installing chrisboulton/php-resque (dev-master 73b62e3)
cloning 73b62e364a89230d041abd2ba767bcec6fa15927
writing lock file
generating autoload files
將 vendor 目錄和應用**一起提交入**倉庫,即可在服務端的**裡使用 php-resque 了。
建立乙個 job.php
檔案,這個檔案裡定義需要執行的任務。
<?phpclass
my_job
}
建立乙個 worker.php
檔案,這個模組會監聽 redis 佇列並處理任務。
<?phpdate_default_timezone_set
('asia/shanghai'
);$redis
="redis 連線位址"
;require
'job.php'
;putenv
("queue=default"
);putenv
("redis_backend=
$redis");
require
'vendor/bin/resque'
;
在應用**根目錄下建立乙個 procfile
檔案,如下新增乙個新的後台程序。
worker: php worker.php
在 web 應用程式的處理函式中,使用如下**新增任務。
<?phprequire
'vendor/autoload.php'
;$redis
="redis 連線位址"
;resque
::setbackend
($redis
);$args
=array
('name'
=>
'chris'
);resque
::enqueue
('default'
,'my_job'
,$args
);
執行完 enqueue 後,任務就會被新增到 redis 佇列中去非同步執行,後台程序會不停的從 redis 佇列中取出任務並執行。
將上面的**提交入**倉庫並 push 到服務端,ta-dah! 完成。你可以在『應用/後台程序』頁面來重啟或者調整程序數目。如果程序啟動有問題,你可以在 http 錯誤日誌裡看到後台程序的詳細錯誤日誌來解決問題。
新浪雲PHP(續)
上次寫好簡單的顯示頁面後,又新增了插入 修改 刪除三個基本功能。index.php xmlns lang zh charset utf 8 body table style 書籍一覽title head method post action admin.php 賬號 type text name u...
是新浪移動雲
借助於殼,web應用可以被安裝,可以被發布到各大市場。同樣的,借助於殼和裝置之間的通訊,殼內的web應用可以輕鬆呼叫裝置硬體。目前這類方案中,最知名的是被adobe收購後捐贈給apache的開源專案phonegap,facebook,微軟,wikipedia等公司都使用它來開發自己的移動客戶端。為方...
新浪使用Redis
風起 2009年微博剛剛上線的時候,微博關係服務使用的是最傳統的 memcache mysql 的方案。mysql 按 uid hash 進行了分庫分表,表結構非常簡單 業務方存在兩種查詢 兩種查詢的業務需求與分庫分表的架構設計存在矛盾,最終導致了冗餘儲存 以 fromuid 為hash key存乙...