我有一個symfony2(php框架)應用程序,我已經編寫了一個可以從命令行調用的命令。該命令只是檢查數據庫中的某個表的任務,然後執行該任務。我需要的是一個守護進程的生物,只要將一行插入到這個(mysql)數據庫表中,就可以使該命令在後臺運行。我不能使用cron作業來完成這項工作,因爲所需的任務需要儘快完成,而且通常需要並行執行。Symfony的簡單守護進程
我看着這一切都錯了嗎?
服務器:Ubuntu的11.10 PHP:5.3 的Symfony:2.1 MySQL的:66年5月1日
我有一個symfony2(php框架)應用程序,我已經編寫了一個可以從命令行調用的命令。該命令只是檢查數據庫中的某個表的任務,然後執行該任務。我需要的是一個守護進程的生物,只要將一行插入到這個(mysql)數據庫表中,就可以使該命令在後臺運行。我不能使用cron作業來完成這項工作,因爲所需的任務需要儘快完成,而且通常需要並行執行。Symfony的簡單守護進程
我看着這一切都錯了嗎?
服務器:Ubuntu的11.10 PHP:5.3 的Symfony:2.1 MySQL的:66年5月1日
我會假設你正在使用某種形式的持久性的ORM的。我將隨後可能在Doctrine一個新的對象
或postPersist()的插入之後執行Propel
postInsert()的代碼使用像postInsert()的鉤。
postPersist - postPersist事件發生在實體被創建>持久化後。它將在數據庫插入操作之後被調用。生成的主要關鍵值在postPersist事件中可用。
這裏是lifecycle events一些更多的信息。
即使這是一個非常古老的問題... 我發現https://github.com/mac-cain13/daemonizable-command
你需要做的也許是有用的。
我曾經遇到過的場景是帶有xp_cmdshell的SQL Server觸發器。插入很多行時存在巨大的問題(即批量插入)。我遵循投票的方式,有時候會用一個普通的舊cronjob,有時候會有一個python守護進程,允許我每分鐘更頻繁地進行輪詢。 –
數據庫觸發器在你的情況下工作嗎? https://dev.mysql.com/doc/refman/5.1/en/create-trigger.html – halfer