我有一個表在我的數據庫(SQL Server),並與數據庫進行通信,以影響它的WCF服務。我的服務器上也有一個PHP腳本。現在每當我的表添加,修改或刪除一些數據時,我希望我的PHP腳本自動執行。
及其應用
我對幾乎完成了一個移動應用程序的工作。現在我需要實現推送通知功能。即每當數據庫發生變化時,我必須運行配置爲向用戶推送通知的服務器端腳本。
我有一個表在我的數據庫(SQL Server),並與數據庫進行通信,以影響它的WCF服務。我的服務器上也有一個PHP腳本。現在每當我的表添加,修改或刪除一些數據時,我希望我的PHP腳本自動執行。
及其應用
我對幾乎完成了一個移動應用程序的工作。現在我需要實現推送通知功能。即每當數據庫發生變化時,我必須運行配置爲向用戶推送通知的服務器端腳本。
推送服務應該在將數據添加到數據庫的層中實現。數據庫僅用於存儲不用於執行代碼的信息。因此,爲了創建推送通知,您需要一個接收更新的接口,將其發送到數據庫並將其推送給用戶。
看到你的問題,我當然不希望你的應用程序直接添加信息到數據庫,而沒有一些驗證傳入信息的圖層。這是一個直接的安全風險。
一個模型的一個解決辦法是:
附錄 - >發送信息 - >網站 - >分析以PHP /其他代碼語言請求 - >插入在數據庫 - >推送消息提供給客戶。
yes.as我已經提到我有一個wcf服務,那是與DB通信的層..所以你說我必須在WCF中做些什麼來接收更新,然後執行php腳本? – Legolas 2013-03-26 13:07:26
是的,只要你集中發送推送,你會沒事的。我認爲對數據庫進行輪詢(無理由)以獲取信息並將其發送給客戶是不明智的。 還要確保接收服務器推送,而不是發送應用程序;由於安全原因。 – Luceos 2013-03-26 13:09:25
我們的WCF服務正在被兩個用戶界面使用 - 桌面和移動..因此,我無法在WCF中做任何更改...我強迫觸發執行DB腳本上的PHP腳本... – Legolas 2013-03-26 13:13:21
大多數情況下,這是通過使用cron(或另一個調度程序)在特定時間間隔(例如每分鐘)檢查數據庫來查找新工作並進行處理來完成的。但是,這種設計只會讓你感到目前爲止,下一個階段將是使用消息隊列(比如gearman,ZeroMQ等)。
您可能可以使用觸發器進行操作,但通常不應將數據庫視爲隊列。
我完全陌生的所有這些東西「Cron」「齒輪工」「ZeroMQ」! U告訴觸發器被排除..因此,我的選擇發送通知給用戶當我的數據庫更改! – Legolas 2013-03-28 04:01:57
我仍然錯過了展示自己的努力和看到答案之一的答案,我將舉出這個問題。 http://stackoverflow.com/questions/15637692/execute-php-script-automatically-whenever-database-changes/15637792?noredirect=1#comment22186517_15637744 – Luceos 2013-03-26 13:12:56
我設法找到一個腳本來推送通知..但現在我站無法找到我可以在數據庫更改上執行腳本的方式? – Legolas 2013-03-28 03:59:39