[問題] 如何有效率的儲存Todo的Repeat資料

看板C_Sharp (C#)作者 (InitialPower)時間9年前 (2016/04/01 11:26), 編輯推噓1(1022)
留言23則, 4人參與, 最新討論串1/1
各位高手好 目前在作的程式碼碰到一個問題 在實作類似行事曆中的 重複功能 的時候 要如何有效率的儲存所有狀況 以及 保留SQL搜尋的彈性 重複的狀況大致上有以下的類型 http://imgur.com/a/exD7T 1.每天重複一次 2.每週重複一次~數次, 使用者可自定 3.每月重複一次~數次, 使用者可自定 4.每年重複一次 5.其他狀況 下載了幾個Open Source的原始碼來參考, 不過似乎都沒有做到這部分 使用的框架為C# + ASP.Net MVC + Entity Framework 不知有沒有人可以提供建議, 先謝過了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.193.235.169 ※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1459481201.A.D72.html

04/01 12:29, , 1F
用內建排程的api
04/01 12:29, 1F

04/01 14:06, , 2F
感謝你的回應 你指的是類似Handfire之類的函數庫吧
04/01 14:06, 2F

04/01 14:08, , 3F
我的需求是儲存任務重複的各種可能性 而且會是多人
04/01 14:08, 3F

04/01 14:08, , 4F
使用 所以那種函數庫似乎不太適合
04/01 14:08, 4F

04/01 21:46, , 5F
原PO的問題是,如何用同樣的資料庫結構去存那些觸發與循環
04/01 21:46, 5F

04/01 21:46, , 6F
設定。
04/01 21:46, 6F

04/01 21:54, , 7F
不過你是為何要搜尋呢?
04/01 21:54, 7F

04/02 01:32, , 8F
這部份我是需要設計成 每日開始時搜尋當日會觸發的
04/02 01:32, 8F

04/02 01:33, , 9F
任務 並自動產生一個子任務 因此需要搜尋的功能
04/02 01:33, 9F

04/02 05:43, , 10F
我覺得,建立/修改設定或任務進行後,就去算下次觸發時間
04/02 05:43, 10F

04/02 05:44, , 11F
把這個觸發時間與關聯任務/工作加入另一個表
04/02 05:44, 11F

04/02 05:45, , 12F
這個觸發表就很單純,篩選就很簡單。
04/02 05:45, 12F

04/02 05:47, , 13F
而原本的設定表就可以保留複雜度與未來擴充性。
04/02 05:47, 13F

04/02 05:48, , 14F
不管怎麼樣的設定,都實作把工作和下次觸發時間丟到觸發表
04/02 05:48, 14F

04/03 04:10, , 15F
用規則來描述觸發時間、可以對規則資料搜尋某天會觸發的
04/03 04:10, 15F

04/03 04:10, , 16F
這兩項是不能同時達成的,如樓上所說要分成規則跟觸發日期
04/03 04:10, 16F

04/03 04:12, , 17F
不過你說的每日搜尋當日會觸發的這個作法我是覺得很奇怪
04/03 04:12, 17F

04/03 04:13, , 18F
通常排程作法都是啟動時照規則算出下一次觸發時間,排進工
04/03 04:13, 18F

04/03 04:13, , 19F
作表,下一次執行時再算下下一次的時間,沒有在要執行時去
04/03 04:13, 19F

04/03 04:14, , 20F
對規則做搜尋的
04/03 04:14, 20F

04/03 04:16, , 21F
至於儲存規則的方式,就cron expression看起來很夠用
04/03 04:16, 21F

04/06 13:37, , 22F
感謝樓上兩位的回答 cron expression 看來是個不錯
04/06 13:37, 22F

04/06 13:37, , 23F
的選擇
04/06 13:37, 23F
文章代碼(AID): #1M_Ufnro (C_Sharp)
文章代碼(AID): #1M_Ufnro (C_Sharp)