小编mad*_*nul的帖子

如何处理数组大于 16MB 的 MongoDB 文档

有一个带有数组的文档,其大小超过 16 MB。如何存储这个文档以便能够从这个数组中查询一些数据。

mongodb

5
推荐指数
1
解决办法
1608
查看次数

如何正确使用 ConcurrentQueue 中的块

我需要实现一个可以从多个线程填充的请求队列。当此队列大于 1000 个已完成的请求时,应将此请求存储到数据库中。这是我的实现:

public class RequestQueue
{
    private static BlockingCollection<VerificationRequest> _queue = new BlockingCollection<VerificationRequest>();
    private static ConcurrentQueue<VerificationRequest> _storageQueue = new ConcurrentQueue<VerificationRequest>();

    private static volatile bool isLoading = false;
    private static object _lock = new object();

    public static void Launch()
    {
        Task.Factory.StartNew(execute);
    }

    public static void Add(VerificationRequest request)
    {
        _queue.Add(request);
    }

    public static void AddRange(List<VerificationRequest> requests)
    {
        Parallel.ForEach(requests, new ParallelOptions() {MaxDegreeOfParallelism = 3},
            (request) => { _queue.Add(request); });
    }


    private static void execute()
    {
        Parallel.ForEach(_queue.GetConsumingEnumerable(), new ParallelOptions {MaxDegreeOfParallelism = 5}, EnqueueSaveRequest …
Run Code Online (Sandbox Code Playgroud)

c# multithreading producer-consumer task-parallel-library tpl-dataflow

4
推荐指数
1
解决办法
630
查看次数