簡體   English   中英

多個rs.exe調用

[英]Multiple rs.exe invocations

我有一個基於Python的SSRS報告生成實用程序,可用於生成多個報告(通常為100多個)。 設置方式是-

  1. 使用threading.Thread調用多個線程,並且每個線程都有一個字典。
  2. 每個線程解析字典並調用rs.exe,並通過python的subprocess.call傳遞相關參數。

生成報告時需要注意以下事項-

  1. 如果大約有20到30個報告,則一切正常,沒有太多問題。
  2. 如果報告的數量超過40-50 +(由於到目前為止我不知道的原因),則某些報告將無法呈現並返回子進程獲得的錯誤。調用非零狀態(子進程的錯誤消息) .call並不指向任何實際錯誤)。 但是這些rs.exe命令中沒有錯誤,因為當我從Windows命令提示符下運行它們時它們就被渲染了。
  3. 另外,當我嘗試重新運行所有那些失敗的報告時,它們會被渲染。 在重新運行命令或數據時,它們沒有任何變化。

要解決此問題,我使用了2次迭代的重試邏輯,這似乎有時可以解決該問題。 但是,當報告超過100/150 +時,即使重試也不起作用。 現在,我可以擴展重試邏輯以繼續重試,直到呈現所有報告並且發生的任何錯誤都是真實的錯誤為止(例如未找到RDL,已損壞等)。 但是在我做任何這樣的事情之前,想知道在多線程上下文中調用時可以同時啟動多少個rs.exe或對python的subproces.call是否有任何限制。

如果有人遇到這種問題並解決了,可以請他人分享他們的專業知識嗎?

謝謝。

我懷疑您達到的限制不是rs.exe本身,而是目標報表服務器。 這將使用可用的盡可能多的物理內存,但是一旦用盡,其他請求將開始失敗。 SSRS doco中對此進行了描述:

https://msdn.microsoft.com/en-us/library/ms159206.aspx

為避免此問題並為其他用戶保留一些服務器資源,我將線程限制降低到您可以承受的最低水平,理想情況下應降至1。

暫無
暫無

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

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