Files
richard-churchman 8477015674 Bug fixes and improvements in Activation Watcher persistence and replay functionality:
* Updated the Activation.js to include an offset to default to last minute for replay in the user interface.
* Fixed a missing reference which meant that the enqueue to activation watcher concurrent queue was not being picked up by the background process responsible for actual database insert,  although it was running.
* Refactored the background persistence process to individial inserts rather than bulk copy,  as activation load should never be so significant that it needs a bulk approach,  while instead being fairly time sensitive.
2026-01-17 12:05:45 +02:00

34 lines
1.7 KiB
C#

/* Copyright (C) 2022-present Jube Holdings Limited.
*
* This file is part of Jube™ software.
*
* Jube™ is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License
* as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
* Jube™ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
* You should have received a copy of the GNU Affero General Public License along with Jube™. If not,
* see <https://www.gnu.org/licenses/>.
*/
namespace Jube.Engine.EntityAnalysisModelManager.EntityAnalysisModel.Context.Models
{
using System;
using System.Collections.Concurrent;
using System.Threading.Tasks;
using Cache.Redis.Callback;
using Data.Poco;
using EntityAnalysisModelInvoke.Context;
using EntityAnalysisModelInvoke.Models;
using Jube.Engine.BackgroundTasks.TaskStarters.Models;
public class ConcurrentQueues
{
public ConcurrentQueue<Context> PendingEntityInvoke = new ConcurrentQueue<Context>();
public ConcurrentQueue<ActivationWatcher> PersistToActivationWatcherAsync { get; set; } = new ConcurrentQueue<ActivationWatcher>();
public ConcurrentQueue<Tag> PendingTagging { get; } = new ConcurrentQueue<Tag>();
public ConcurrentQueue<Notification> PendingNotifications { get; set; } = new ConcurrentQueue<Notification>();
public ConcurrentDictionary<Guid, TaskCompletionSource<Callback>> Callbacks { get; set; } = new ConcurrentDictionary<Guid, TaskCompletionSource<Callback>>();
}
}