[英]How to stop SSAS cube processing programatically?
我們使用Microsoft.AnalysisServices庫來訪問我們的SSAS數據庫(在SQL Server 2014上)並以編程方式處理多維數據集。
代碼如下所示:
using (var server = new Server())
{
server.Connect("someserver");
if (server.Connected)
{
var db = server.Databases.FindByName("somedb");
if (db != null)
{
db.Process(ProcessType.ProcessFull);
}
}
}
問題是,完整立方體處理可能需要很長時間(在我們的情況下超過1小時)。 如果需要,我們需要一種方法來優雅地停止/取消它(上面的代碼是有時需要重新啟動的復雜Windows服務的一部分)。
中斷任務導致不處理多維數據集是完全可以接受的。
有沒有辦法編寫上面的代碼,所以它是非阻塞的? 或以某種方式傳遞回調? 我在MSDN文檔中找不到任何相關的內容:
https://msdn.microsoft.com/en-us/library/microsoft.analysisservices.database.aspx
您可以嘗試擺脫using
塊並使server
對象成為類級成員嗎? 然后在取消線程上嘗試這個:
server.CancelSession(server.SessionID);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.