這篇文章主要介紹了Yii實現Command任務處理的方法,結合實例形式分析了Yii配置、加載及使用Command任務處理的步驟與相關技巧,需要的朋友可以參考下
本文實例講述了Yii實作Command任務處理的方法。分享給大家供大家參考,如下:
1.配置,執行任務所需的元件
任務設定檔:/protected/config/console.php
設定方法跟設定main檔案差不多
<?php // This is the configuration for yiic console application. // Any writable CConsoleApplication properties can be configured here. return array( 'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..', 'name'=>'My Console Application', // application components // 自动载入的模型和组件类 'import'=>array( 'application.models.*',//载入"application/models/"文件夹下的所有模型类 'application.components.*',//载入"application/components/"文件夹下的所有应用组件类 'application.extensions.*',//载入"application/extensions/"文件夹下的所有应用组件类 ), 'components'=>array( // uncomment the following to use a MySQL database 'db'=>array( 'connectionString' => 'mysql:host=localhost;dbname=dbname',//连接mysql数据库 'emulatePrepare' => true, 'username' => 'root',//MySQL数据库用户名 'password' => '123456',//MySQL数据库用户密码 'charset' => 'utf8',//MySQL数据库编码 'tablePrefix' => 'zd_', //MySQL数据库表前缀 'enableProfiling'=>true, 'enableParamLogging'=>true, ), //加载Email组件 'mailer' => array( 'class' => 'application.extensions.mailer.EMailer', ), ), );
#2.任務檔案
放在/protected/commands/ 檔案目錄下繼承CConsoleCommand 基底類別的為任務檔案命名方法為 任務名稱Command
例如GoCommand.php
<?php /** * 自动运行文件 */ class GoCommand extends CConsoleCommand { /** * 死循环输出 */ public function run(){ for($i=1;$i>0;$i++){ self::echoWord($i); sleep(2);//休眠2秒 //跳出 if(i==500){ break; } } } /** * 输出hollo word */ public function echoWord($i){ echo "hollo word --$i\n"; } }
#3.執行任務
開啟命令列工具,進入專案的/protected 目錄下輸入yiic指令即出現提示,提示清單顯示剛才寫的任務檔案
E:\project\app\protected>yiic Yii command runner (based on Yii v1.1.12) Usage: E:\zeee\zyd\protected\yiic.php <command-name> [parameters...] The following commands are available: - go - mailqueue - message - migrate - shell - webapp To see inpidual command help, use the following:
執行指令yiic go 可實現任務處理
#以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關推薦:
#
以上是如何透過Yii實作Command任務處理的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

負載均衡會影響會話管理,但可以通過會話複製、會話粘性和集中式會話存儲解決。 1.會話複製在服務器間複製會話數據。 2.會話粘性將用戶請求定向到同一服務器。 3.集中式會話存儲使用獨立服務器如Redis存儲會話數據,確保數據共享。

Sessionlockingisatechniqueusedtoensureauser'ssessionremainsexclusivetooneuseratatime.Itiscrucialforpreventingdatacorruptionandsecuritybreachesinmulti-userapplications.Sessionlockingisimplementedusingserver-sidelockingmechanisms,suchasReentrantLockinJ

PHP會話的替代方案包括Cookies、Token-basedAuthentication、Database-basedSessions和Redis/Memcached。 1.Cookies通過在客戶端存儲數據來管理會話,簡單但安全性低。 2.Token-basedAuthentication使用令牌驗證用戶,安全性高但需額外邏輯。 3.Database-basedSessions將數據存儲在數據庫中,擴展性好但可能影響性能。 4.Redis/Memcached使用分佈式緩存提高性能和擴展性,但需額外配

Sessionhijacking是指攻擊者通過獲取用戶的sessionID來冒充用戶。防範方法包括:1)使用HTTPS加密通信;2)驗證sessionID的來源;3)使用安全的sessionID生成算法;4)定期更新sessionID。

本文比較了PHP和ASP.NET,重點是它們對大規模Web應用程序,性能差異和安全功能的適用性。兩者對於大型項目都是可行的,但是PHP是開源和無關的,而ASP.NET,


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Linux新版
SublimeText3 Linux最新版

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具