Я пытаюсь использовать коллекцию MongoDB, но я думаю, есть способ сделать это лучше, чем моя реализация.
Это мой текущий подход:
IMongoClient client = new MongoClient("mongodb://localhost");
IMongoDatabase database = client.GetDatabase("example");
while (true)
{
await Task.Delay(1000);
var collection = database.GetCollection<BsonDocument>("SyncQueue");
var documents = collection.Find(new BsonDocument()).ToList();
foreach (var doc in documents)
{
ProcessDocAndRemoveFromCollection(doc);
}
}
Можно ли сделать что-то подобное ниже?
PSEUDOCODE:
IMongoClient client = new MongoClient("mongodb://localhost");
IMongoDatabase database = client.GetDatabase("example");
var subject = new Subject<BsonDocument>();
subject.Subscribe(doc => ProcessDocAndRemoveFromCollection(doc));
>>>>>>>>>>>>>>>>>>>>>
when new doc in MongoDB Collection ----> subject.OnNext(doc);
<<<<<<<<<<<<<<<<<<<<<
Ключевым моментом является то, что я хочу избежать создания бесконечного l oop для использования коллекции