目前在製作當網站如果update或者新建、回應就會寄發通知信給相關使用者。
但在這部份使用Messaging & Notifications模組
也使用Poormanscron來執行網站多久執行corn,但它最低也得設定1小時來跑,但希望是每5分鐘執行一次,所以在DRUPAL網站自動執行corn.php
我後來使用win的話就是以系統工具/排定的工作來做自動跑cron.php
https://drupaltaiwan.org/files/corn.PNG
結果這樣的方式會造成我寄發通知信的連結網址會變成跟「排定的工作」路徑一樣 (雖然成功能每五分鐘寄送,但是寄裡面的內容路徑顯示錯誤)
不知大家是怎麼實作這塊的呢? 謝謝
test
Read more http:///D:\www\htdocs\web/node/194#comment-83--
一個人能克服肢體障礙、保持心理健康,就是一種精神上的示範教育 (靜思語錄)
附加檔案 | 大小 |
---|---|
corn.PNG | 9.94 KB |
Re: 自動執行執行cron
要不要試試官網上的建議阿,
Configuring cron jobs on Windows
用瀏覽器透過網址協助執行cron.php (ex: http://www.example.com/cron.php)
個人是另外用了個vb script來執行,
執行完之後,自動關閉瀏覽器。
Re: 自動執行執行cron
網址的部份有成功 !! >w<但ie開起來執行完若沒自動沒關掉的話就不能跑了…不知ie要如何讓它自動關閉呢?
執行C:\PROGRA~1\INTERN~1\iexplore.exe http://xxx.xxx.com.tw/web01/cron.php
開啟位置:C:\PROGRA~1\INTERN~1
人人把心中的愛發揮出來,就能凝聚善的福業,形成善的循環。 (靜思語錄)
Re: 自動執行執行cron
很久以前找來的vbscript
Set objExplorer = WScript.CreateObject("InternetExplorer.Application")
objExplorer.Navigate "http://sample.com/cron.php"
objExplorer.ToolBar = 1
objExplorer.StatusBar = 0
objExplorer.Width=800
objExplorer.Height = 600
objExplorer.Left = 0
objExplorer.Top = 0
objExplorer.Visible = 1
While (objExplorer.busy)
wend
objExplorer.Quit
存成 *.vbs 的檔案,把Navigate那一行的網址改成你要跑的cron.php就行。
一樣用排程工具來執行即可
Re: 自動執行執行cron
amouro這個vbs主要是在asp伺服器跑~
然後我是不是得另寫bat執行緒來跑corn呢?
人人把心中的愛發揮出來,就能凝聚善的福業,形成善的循環。 (靜思語錄)
Re: 自動執行執行cron
喔,我把他當成可執行檔,直接讓排程工具從windows底下執行就可以,不需要放在網頁或是有其他bat
把網址改掉存檔後,你可以直接執行vbs,你應該會看到你的網站有被access的紀錄
Re: 自動執行執行cron
有空看看:
http://www.notabluescreen.com/drupal7-cron#comment-92
---
notaBlueScreen | 一天一翻譯,好過吃蘋果
Re: 自動執行執行cron
我用工作排程去執行c:\php\php.exe D:\www\htdocs\web01\cronall.php其中cronall.php裡面的寫法如下~
但有疑問的是我是不是得去安裝http://users.ugent.be/~bpuype/wget/
因為它有用到echo 'Executing command: '.$cmd.''; (但wget好像是捉站點的工具) -->有看Kay.L所建議的網站但它有提到wget工具
<?php
$cronUrl = 'http://%s/web01/cron.php';
$addedSites = array();
$addedSites [] = 'xx.xxx.com.tw';
error_reporting(E_ALL);
$sites = array();
//default site
if(isset($addedSites) && is_array($addedSites)){
$sites = array_merge($sites, $addedSites);
}
foreach($sites as $site){
$cmd = 'wget --spider '.sprintf($cronUrl, $site);
echo 'Executing command: '.$cmd.'';
exec($cmd);
}
?>
人人把心中的愛發揮出來,就能凝聚善的福業,形成善的循環。 (靜思語錄)
Re: 自動執行執行cron
是丫
wget --spider 好像只有 GET HEAD REQUEST,是否有執行到沒試過
還有是,你這樣,應該會造成 X 個網站同時執行 CRON
伺服器不好的話....... 會...........
CURL 也是另一個選擇,也有 windows 版本
還有是....... 你使用 php 這樣執行,也在 WINDOWS 中.....
倒不如直接用 PHP 的 fucntion ....... file_get_contents(), curl, ...etc....
---
notaBlueScreen | 一天一翻譯,好過吃蘋果
Re: 自動執行執行cron
http://www.drupalcron.org/ : You can register here and subscribe 5 drupal sites. The cron.php of those drupal sites will be visited every hour.
Joetsui's blog
Re: 自動執行執行cron
Poormanscron 可以自行修改模組, 讓他每5分鐘執行一次喔
poormanscron.module
function poormanscron_form_system_site_information_settings_alter(&$form, &$form_state) {
$form['cron_safe_threshold'] = array(
'#type' => 'select',
'#title' => t('Automatically run cron'),
'#default_value' => variable_get('cron_safe_threshold', 10800),
'#options' => array(0 => t('Never')) + drupal_map_assoc(array(3600, 10800, 21600, 43200, 86400, 604800), 'format_interval'),
'#description' => t('When enabled, the site will check whether cron has been run in the configured interval and automatically run it upon the next page request. For more information visit the status report page.', array('@status-report-url' => url('admin/reports/status'))),
);
$form['buttons'] += array('#weight' => 100);
array_unshift($form['#submit'], 'poormanscron_site_information_settings_submit');
}
修改這行 drupal_map_assoc(array(3600, 10800, 21600, 43200, 86400, 604800), 'format_interval'),
在陣列裡面加上 300, 就有五分鐘了。
Re: 自動執行執行cron
不錯的分享~收下
頭頂人家的天,腳踏人家的地,應以感恩心取諸當地、用諸當地。先去愛人,才能被愛。 (靜思語錄)