好吧,它更像是一個建議,我會怎麼做。如何在特定時間執行查詢php
我有一張有產品的表格。我正在做的是他們的終止日期現在設置爲31-12-16
,如果用戶登錄,那麼當時我可以運行一個查詢,任何有效期限小於當前日期的產品都將被標記爲disabled
。但這不是合適的解決方案。如果用戶未登錄,則產品在登錄之前不會標記爲disabled
。
我被建議申請cron-job
。但我不知道它是什麼。
任何人都可以建議我將如何自動實現這個問題?無論用戶是否登錄,都將其標記爲禁用。
好吧,它更像是一個建議,我會怎麼做。如何在特定時間執行查詢php
我有一張有產品的表格。我正在做的是他們的終止日期現在設置爲31-12-16
,如果用戶登錄,那麼當時我可以運行一個查詢,任何有效期限小於當前日期的產品都將被標記爲disabled
。但這不是合適的解決方案。如果用戶未登錄,則產品在登錄之前不會標記爲disabled
。
我被建議申請cron-job
。但我不知道它是什麼。
任何人都可以建議我將如何自動實現這個問題?無論用戶是否登錄,都將其標記爲禁用。
最簡單的方法是創建一個每天運行並將過期產品更新爲disabled
的MySQL event
。
MySQL的事件
DELIMITER $$
CREATE PROCEDURE check_products()
BEGIN
// Place your update query here
// It is executed every day.
END $$
DELIMITER ;
DELIMITER $$
CREATE
EVENT `disable_expired_products`
ON SCHEDULE EVERY 1 DAY
DO BEGIN
CALL check_products();
END $$
DELIMITER ;
請大家記住MySQL的事件默認禁用,需要通過將event_scheduler=1
內[mysqld]
的/etc/mysql/my.cnf
的cronjob
安裝了的cronjob,例如執行在上午1:15
15 1 * * * php /home/user/update.php
update.php
已獲取你的行,並根據您的要求進行更新。
根據您的要求,桌子上的視圖也可能很有用。
這似乎很有幫助,如果可以爲cronjob提供一個簡短的腳本,那麼會有很多問題會爲我解決! –
我添加到我的答案如何設置一個cronjob。 – user3606329
天啊!這很容易!最後一個問題。它不會影響Mysql在網站上的表現吧?它不會減慢速度? – Beenu
http://askubuntu.com/questions/2368/how-do-i-set-up-a-cron-job –
@Dagon我有很少的時間,我必須從頭開始學習cron-job!另外我還有其他項目要完成。我在這裏得到一個最簡單和有效的建議。如果你有建議,請告訴別人,不要煩惱! – Beenu
克朗職位真的很容易學習。您只需在文件中添加一行說明您想要運行的命令以及運行它的時間表。該命令類似於'php/path/to/script.php'。 – Barmar