我有一個使用 Java、JSP 和 Azure SQL 資料庫在 Azure PaaS (Tomcat) 上運行的應用程式。
用戶使用 Web 瀏覽器登錄應用程式,然后可以運行報告,其中涉及使用 java (i) 從資料庫中提取資料,(ii) 處理它 (iii) 使用 Apache POI 創建 Excel 檔案。
如何在后端的日常流程中自動執行此流程?
到目前為止,這是我的想法。
由于我需要訪問創建報告的應用程式中的 java 代碼,因此我不贊成使用 Azure 邏輯應用作為完整的解決方案。
我可以將生成報告的代碼復制并粘貼到 Azure 函式中,然后使用 Azure Logic App 自動執行此代碼,但重復代碼顯然很麻煩。
我可以使用在單獨的機器上運行的某種自動化測驗工具(例如 Selenium,或自己撰寫)來登錄系統并提取報告,但這也不太可靠,并且需要單獨的機器。我更愿意在后端執行此操作。
在 Java 中創建一個 servlet 以在不登錄的情況下執行報告,然后通過 Azure 邏輯應用程式呼叫它。(并阻止 servlet 訪問公共 Internet)
有沒有人有一個簡潔的解決方案?
uj5u.com熱心網友回復:
使用諸如石英庫之類的調度程式。如果您現在開始撰寫應用程式,我會說使用 spring boot。(具有多重優勢,在 Prod 中的 5 種武器中使用它,都運行良好。在持久性和網路層進行了優化)
Spring也使用石英。無論如何,使用石英的方法有很多,但基本上你的代碼中的一個方法會在指定的日期/時間/頻率上被它呼叫。比如每天早上 8 點一次。該功能可以觸發創建報告、ftp、通過電子郵件發送報告和其他后端任務的任務。
不要使用 selenium ...不是滿足此要求的正確工具。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/455801.html
