我一直在尋找一種簡單的方法來清除MSMQ中給定服務器的所有隊列。我不需要創建或刪除隊列,只需清除任何消息即可。如何使用F#清除服務器上的所有隊列?
1
A
回答
4
我很難找到這個答案,所以決定發佈我發現的東西。就創建腳本vs fsi而言,這可能有一些變化,但這是我的解決方案。
在它創建的腳本:
open System
open System.Messaging
let purgeQueue (server :string) =
let qs = MessageQueue.GetPrivateQueuesByMachine server
for q in qs do
printfn "%O" q.QueueName
q.Purge()
啓動FSI和r組成System.Messaging.dll。然後加載此腳本並在所需的服務器上運行call purgeQueue。我的情況是我在箱子上時通過了本地主機。
4
@Joshua - 我爲你的代碼增加了一些額外的位,僅僅是爲了它。這會自動引用System.Messaging.dll
,並允許您切換是否清除公共和專用隊列或公用隊列。
#if INTERACTIVE
#r "System.Messaging.dll"
#endif
open System
open System.Diagnostics
open System.Messaging
//
[<RequireQualifiedAccess>]
module Queue =
//
let purgeByMachine includePrivateQueues (machineName : string) =
let queues =
let publicQueues = MessageQueue.GetPublicQueuesByMachine machineName
if includePrivateQueues then
let privateQueues = MessageQueue.GetPrivateQueuesByMachine machineName
Array.append publicQueues privateQueues
else
publicQueues
queues
|> Array.iter (fun queue ->
sprintf "Purging queue: %s" queue.QueueName
|> Trace.WriteLine
queue.Purge())
相關問題
- 1. 它是如何清除所有已經在隊列中排隊的任務的?
- 2. 清除SQL Server服務代理隊列
- 3. 如何用python中的芹菜清除特定隊列的所有任務?
- 4. 使用ncftp清除隊列
- 5. 如何清除NiFi隊列?
- 6. 如何清除我自己的服務器上的所有osm瓷磚緩存
- 7. 如何清理服務器上的HTML - 所見即所得
- 8. 如何清除(刪除)jquery中所有排隊的函數?
- 9. 如何清除MPMusicPlayerController的隊列?
- 10. 如何清除Jboss中的JMS隊列
- 11. 如何使用PHP獲取服務器上的所有域?
- 12. 如何使用Python讀取服務器上的所有證書
- 13. ActiveMQ - 通過命令行刪除/清除所有隊列
- 14. 列出隊列管理器上的所有隊列
- 15. 列出服務器上的所有文件使用C
- 16. 如何清除/清除VxWorks中的消息隊列緩衝區?
- 17. 如何列出服務器上的所有iSCSI連接?
- 18. 如何清除POSIX消息隊列?
- 19. jQuery「隊列」(ajaxQueue插件) - 如何清除?
- 20. 清除Azure存儲隊列上的隊列
- 21. 如何訪問多個Web服務器上的豆杆隊列
- 22. 清理隊列中所有其他請求的GCD隊列
- 23. 如何在使用Memcached服務器時清除Magento緩存
- 24. 如何使用jquery清除服務器文本框
- 25. api服務器 - 隊列服務vs本地迷你隊列
- 26. 如何在Google App Engine的開發服務器上使用拉隊列
- 27. 如何使用Powershell列出服務器中使用服務帳戶運行的所有服務
- 28. 一次性清除蔚藍服務巴士隊列
- 29. 如何在服務器上有隊列消息時啓動計劃任務
- 30. 在Excel中使用VBA時,如何清除特定列上的所有內容?
謝謝傑克! –