簡體   English   中英

如何使用C#中的線程處理多個查詢

[英]How can I handle multiple queries with threads in c#

我在C#中使用多線程應用程序時遇到問題,希望獲得一些幫助,因為我是多線程的新手。

這是這種情況:我將有一個移動應用程序,它將在數據庫(Mysql)中執行很多查詢/請求,我的目標是制作一個服務器端應用程序,以在Linux機器中使用C#處理多個查詢。營救)。 我的公司在做應用程序的數據庫方面,還有另一家公司在做移動應用程序。 我將數據發送到雲,雲服務器將其發送到客戶端。

簡而言之,我正在閱讀通過C#和C#4.0編寫的CLR的線程章節,但是直到現在我對我能做的事情只有一點頭緒,我相信異步方法會起作用,因為它不需要太多的時間。資源,但我對如何處理線程並發(優先級,狀態)有些困惑。

所以這是我的問題:

  • 解決此問題的最佳方法是什么?
  • .NET框架中哪個類最適合此工作?
  • 我應該如何處理查詢隊列?
  • 我如何足夠快地處理數千個線程/查詢,以便我的移動應用程序用戶可以在5分鍾的估計時間內獲得查詢結果?

一些觀察:

我知道完成查詢的數據和時間將成倍地等於數據庫中用戶數據的大小,但是我需要盡可能快地處理(少量和大數據)它。

我將數據發送到雲數據庫(Amazon EC2),然后從那里將其發送到客戶端。 我不會處理,這將由另一家公司處理,因此我的工作是快速完成查詢並使它們適用於雲數據庫。

我知道向我的客戶發送信息取決於我的IT基礎結構,但是這里的重點是:如何以一種我只需要擔心我的應用程序基礎結構的方式快速解決此問題。

我無法將查詢放在大字符串上並扔到數據庫上,因為在將結果發送給用戶之前,我需要分別處理每個查詢結果。

存儲引擎是MyISAM,因此不允許進行任何事務。

我將在頂級服務棧或WebAPI上創建一個REST Web服務,以抽象出通過服務對您的數據的訪問。 這些服務中的任何一種都可以處理您的移動客戶端的同時請求,因為它們是為處理這些請求而設計的。 另外,我將創建一個類,該類可以介導訪問並為您的數據庫(即存儲庫)提供工作單元。 MySQL的連接提供程序應該能夠處理來自Web服務的同時請求,因此您不必擔心線程和請求管理。 如果單個實例還不夠,則可以添加更多運行相同代碼的Web服務器,並使用負載均衡器將請求分發到服務/數據代碼相同的每個實例。

基於Mono的Web-api / servicestack的一些資源:

http://www.piotrwalat.net/running-asp-net-web-api-services-under-linux-and-os-x/

在Linux / Mono上運行ServiceStack的最佳方法是什么?

暫無
暫無

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

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