2011-09-06 17 views
7

मैं कोडइग्निटर में निर्मित साइट के साथ एक क्रॉन नौकरी करने की कोशिश कर रहा हूं - मुझे सीपीनेल क्रॉन सुविधा तक पहुंच मिली है, क्या कोई भी सीपीनेल का उपयोग करके क्रॉन नौकरी स्थापित करने का सबसे अच्छा तरीका सुझा सकता है?कोडनिर्देशक में क्रॉन नौकरियां

मैं कोडिग्निटर का उपयोग कर रहा हूं, इसलिए यह सुनिश्चित नहीं हो सकता कि क्रॉन नौकरी के भीतर नियंत्रक को कैसे कॉल किया जाए?

उदा http://admin.com/sites/publish/

मैं कैसे पहुँच प्राप्त होगा यह एक क्रॉन जॉब का उपयोग कर साइटों नियंत्रकों के भीतर समारोह प्रकाशित करें?

उत्तर

9

सबसे अच्छा तरीका है, here देख क्रॉन जॉब में कमांड लाइन से कॉल करने के लिए ...

php /path/to/index.php controller >> /dev/null 

आप सीआई में कमांड लाइन के माध्यम से नियंत्रकों चला सकते है।

+0

यह मेरा उद्देश्य क्या आपको लगता है के लिए सही होगा? php /home/username/public_html/index.php/sites/publish >>/dev/null – Zabs

+2

मेरे द्वारा +1 लेकिन मैं सिर्फ प्रश्न और पथ के आधार पर जोड़ दूंगा जिसे आप 'php/path' /to/index.php साइटें प्रकाशित करें >>/dev/null' (एहसास है कि आपने अभी एक उदाहरण दिया है जिसे मैंने स्पष्ट किया है) – simnom

+0

हाय फिर से - बस कोशिश की और क्रॉन चल रहा है लेकिन मुझे निम्न क्रॉन डेमॉन संदेश मिलता है मुझे भेजा। एनबी नियंत्रक को साइट कहा जाता है और फ़ंक्शन को क्रॉन /bin/sh: /home/username/public_html/index.php/sites/publish: निर्देशिका नहीं है – Zabs

5
मेरे लिए

इस cURL उपयोग कर रहा है कर रहे हैं और क्रॉन में यूआरएल को क्रियान्वित करने के आसान तरीका:

curl http://admin.com/sites/publish/ 

आप यूआरएल को सुरक्षित करने की जरूरत है, तो आप डेटा पोस्ट के माध्यम से का उपयोग कर भेज सकते हैं:

curl -X POST -d "apikey=yourapikey&another=variable" http://admin.com/sites/publish/ 

इस तरह आपको php पैरामीटर और विभिन्न कॉन्फ़िगरेशन से लड़ना नहीं है।

+0

का उत्तर दिया है, आप अपनी क्रॉन नौकरियों को पूरी दुनिया में बेनकाब करते हैं – Peacemoon

+0

आप एक htpasswd का उपयोग कर उनकी रक्षा कर सकते हैं। मुझे पता है कि कर्ल के बजाए PHP का उपयोग करना सुरक्षित है, लेकिन कुछ मूर्ख चीजों के लिए यह इस तरह से आसान है। – juanrossi

2

मैं इस तरह के रास्ते, फ़ोल्डर क्रॉन सामग्री

<? $_SERVER["SCRIPT_URL"] = "/controllerName/MethodName"; // you can set url in routes if you want 
    $_SERVER["HTTP_HOST"] = "your_site_address.com"; // without http://www 
    require(dirname(__FILE__) . "/../public/index.php"); // path to index.php 
?> 

मेकअप नियंत्रक क्रॉन दूसरों की तरह के साथ एक क्रॉन जॉब /cron/my_task.php के लिए

/application 
/cron 
    my_task.php 
/public 

मेकअप स्क्रिप्ट बनाने, लेकिन जोड़ने करना __construct

और

में आईपी पर सत्यापन
1

cronjob कमांड लाइन नियंत्रक, कार्यों और पैरामीटर पहुँचने के लिए इस कोशिश के लिए:

php index.php/controller/function/param1/param2/param3 etc 

या

php index.php controller function param1 param2 param3 etc 
संबंधित मुद्दे