使用我的DDD模型,我擁有託管特定用戶故事並允許存儲庫/實體/域服務被組織的應用程序服務 - 據我所知這是一種常見的的領域驅動設計分層如下部分:應該在定時器上調用DDD應用程序服務調用的入口點
我需要調用一個定時調度應用服務,這個時間表是在從職位庫中獲得模型本身定義。對這篇文章的評論友好地提到要使存儲庫返回GetPendingJobs()以及要運行的作業列表。
每個作業都使用一個cron作業字符串,並將調用一個應用程序服務(例如SyncAccounts)。
我的問題是:
我知道我們可以在一個線程查詢此,但如果將這一坐,在實體領域的服務,或一些外部的域模型(也許之間的層應用程序和演示文稿)?
正如評論中提到的就業信息庫返回GetPendingJobs(),如果這是基於當前的日期/時間,知識產權的責任是知道何時運行或Job實體(檢查針對它的cronjob字符串的當前日期時間)?下面
代碼:
namespace DomainServices
{
public class JobSchedule
{
private readonly JobsRepository repo;
JobSchedule(JobsRepository repo)
{
this.repo = repo;
}
public void Poll()
{
var jobs = this.repo.GetAllJobs();
foreach(var job in jobs)
{
if(job.IsTimeToRun())
job.Run();
}
}
}
}
我會'GetAllPendingJobs'這將只是返回應該運行的人。但我不明白DDD有什麼作用呢? – jgauffin 2013-02-12 12:15:52
感謝您的回覆 - 我認爲它與Domain Drive設計有很大關係......特別是我們如何將應用程序層與模型進行交互。 另外,您是否想知道倉庫何時應該運行(基於日期/時間)?如果這不是工作的責任,要知道它何時會運行? – g18c 2013-02-12 14:22:46