簡體   English   中英

單個流程工作者還是更多特定於DB的東西?

[英]Single Process Worker or Something More DB Specific?

我需要避免數據庫中的日期范圍重疊。 我希望這是與數據庫無關的-即使不與數據庫無關,這也是一個很難解決的問題(http://asktom.oracle.com/pls/asktom/f?p=100:11:0%3a% 3a%3a%3aP11_QUESTION_ID:474221407101)。 我只有一個應用程序正在寫入數據庫。 其他一些正在從中讀取,其中讀取性能至關重要。 進行編寫的應用程序是線程化的-它是一個Web應用程序-並且在群集中。

因此,我認為僅一次確保只編寫一個進程可能是最容易的。 這是正確的方法嗎? 如果是這樣,我是否應該只有一個線程應用程序來偵聽某些請求隊列並按接收順序處理這些請求? 無論如何,我在數據庫中都擁有所有這些請求,只是在考慮使用created_at日期和狀態來處理它們。

解決此問題的一種方法是設置一個表,該表包含所有日期作為DATE值。 像這樣的東西:

CREATE TABLE MY_SCHEDULER (
    SCHEDULED_DATE DATE PRIMARY KEY,
    OWNER_ID NUMBER(8)
);

SCHEDULED_DATE將代表一天,並將與時間00:00一起存儲。 主鍵完整性將確保不能使用相同的SCHEDULED_DATE插入兩個記錄。 OWNER_ID是誰“擁有”該日期的參考。 鑒於DATE變量在Oracle中為7個字節,並且該數目也不算太大(最大22個字節),因此您應該在存儲方面沒有問題。 100年的日期價值大約只有10 MB!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM