2011-09-06 27 views
7

CodeIgniter'de yerleşik bir site ile bir cron işi yapmaya çalışıyorum - CPanel cron özelliğine erişimim var, herkes CPanel kullanarak bir cron işi kurmanın en iyi yolunu önerebilir mi?Cron işleri codeigniter içinde

CodIgniter kullanıyorum, bu nedenle bir cron işinde denetleyiciyi nasıl arayacağınızdan emin olamıyor musunuz?

Örn http://admin.com/sites/publish/

Nasıl bu bir cron işi kullanan siteler kontrolörleri içinde işlevini yayınlamak erişmek ki? , here bkz

cevap

9

iyi yolu Sen CI komut satırı üzerinden denetleyicileri çalıştırabilirsiniz

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

... cron işi komut satırından aramak. Benim için

+0

bu sizce benim amaç için doğru olur mu? php /home/username/public_html/index.php/sites/publish >>/dev/null – Zabs

+2

+1 benden ancak 'php/yol kullanacağınız soru ve yola göre ekleyeceğim /to/index.php siteleri yayınla >>/dev/null' (sadece açıklığa kavuşturacağımı düşündüğün bir örnek vermiş olduğunun farkına var) – simnom

+0

Tekrar merhaba - sadece denedim ve cron çalışıyor ama şu Cron Daemon mesajını aldım gönder bana. NB Denetleyici sitelere denir ve işlev cron olarak adlandırılır /bin/sh: /home/username/public_html/index.php/sites/publish: Dizin değil – Zabs

5

bu cURL kullanıyor yapıyor ve cron url yürütme daha kolay yol: Eğer url sabitlemek gerekiyorsa, kullandığınız posta yoluyla veri göndermek olabilir

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

:

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

Bu şekilde php parametreleri ve farklı yapılandırmalarla savaşmanız gerekmez.

+0

cevabını güncelledim, cron işlerini tüm dünyaya yansıttınız – Peacemoon

+0

Bir htpasswd kullanarak onları koruyabilirsiniz. Curl yerine php kullanarak daha güvenli olduğunu biliyorum, ama bazı aptalca şeyler için bu şekilde daha kolay. – juanrossi

2

Bunun hiç bir yol, diğerleri gibi içerik

<? $_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 
?> 

yapmak kontrolör Cron ile her cron işi /cron/my_task.php için klasör Cron

/application 
/cron 
    my_task.php 
/public 

yapmak komut dosyası oluşturmak, ancak eklerim __construct içinde IP doğrulama

ve sonda gelen

gibi koşmak
1

cronjob komut satırı kontrolör, fonksiyonları ve params erişmek için bu deneyin için:

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

veya

php index.php controller function param1 param2 param3 etc