![](/img/trans.png)
[英]Best way to dynamically schedule reminder email? Anything better than cron?
[英]Right way to implement schedule / cron
我需要在Pimcore中添加批量對象的創建。 首先,我嘗試使用Web,但是由於集合數量龐大,請求花了很長時間,並且實際上放棄了方法。
然后我選擇了cron來安排以后的工作,但是我遇到了其他問題。 像其他RAD應用程序一樣,pimcore在/ website / var / versions等文件夾中自動生成一些代碼。 因此,這些文件夾會自動獲得Web用戶(在我的情況下為apache用戶)的許可。
但是,由執行Pimcore API的普通用戶運行的My cron腳本要求創建對象/數據,但由於權限不足而無法寫入文件夾。 現在,我可以選擇以下兩種方法之一。
我以前在google上搜索過,發現命令setfacl設置了文件夾的默認用戶/權限。 我這樣使用。
`sudo setfacl -Rm u:apache:rwx,d:u:apache:rwx website/var/versions/object`
但是它經常失敗,我需要一次又一次地手動授予權限。
現在是否有解決此問題的實用方法?
注意:我當前正在使用Amazon Linux AMI。 但是以后可以將其更改為redhat或ubuntu,因此更好的是可以使用通用Linux解決方案。
Pimcore已經要求其維護作業(cron)在apache用戶下運行,因此不在apache用戶下運行您的工作可能不會有多大改善。
但是,您可能希望采用用於集成新聞通訊發送的方法。
參見/pimcore/modules/reports/controllers/NewsletterController.php:194 :
$cmd = Tool\Console::getPhpCli() . " " . realpath(PIMCORE_PATH . DIRECTORY_SEPARATOR . "cli" . DIRECTORY_SEPARATOR . "send-newsletter.php"). " " . escapeshellarg($letter->getName()) . " " . escapeshellarg(Tool::getHostUrl());
Tool\Console::execInBackground($cmd, PIMCORE_LOG_DIRECTORY . "/newsletter--" . $letter->getName() . ".log");
上面的代碼運行CLI腳本/pimcore/cli/send-newsletter.php
使用這種方法,就不需要cron了,因為該作業是作為CLI運行的,所以它不會超時(如果您沒有為PHP CLI顯式設置超時)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.