Postgres (#30)
* Add postgres * Migrate users * Migrate geneticRequest * Try to fix Concurrent call * Fix asyncawait * Fix async and concurrent * Migrate backtests * Add cache for user by address * Fix backtest migration * Fix not open connection * Fix backtest command error * Fix concurrent * Fix all concurrency * Migrate TradingRepo * Fix scenarios * Migrate statistic repo * Save botbackup * Add settings et moneymanagement * Add bot postgres * fix a bit more backups * Fix bot model * Fix loading backup * Remove cache market for read positions * Add workers to postgre * Fix workers api * Reduce get Accounts for workers * Migrate synth to postgre * Fix backtest saved * Remove mongodb * botservice decorrelation * Fix tradingbot scope call * fix tradingbot * fix concurrent * Fix scope for genetics * Fix account over requesting * Fix bundle backtest worker * fix a lot of things * fix tab backtest * Remove optimized moneymanagement * Add light signal to not use User and too much property * Make money management lighter * insert indicators to awaitable * Migrate add strategies to await * Refactor scenario and indicator retrieval to use asynchronous methods throughout the application * add more async await * Add services * Fix and clean * Fix bot a bit * Fix bot and add message for cooldown * Remove fees * Add script to deploy db * Update dfeeploy script * fix script * Add idempotent script and backup * finish script migration * Fix did user and agent name on start bot
This commit is contained in:
@@ -2,7 +2,6 @@ using Managing.Application.Abstractions;
|
||||
using Managing.Application.Abstractions.Repositories;
|
||||
using Managing.Application.Abstractions.Services;
|
||||
using Managing.Application.ManageBot.Commands;
|
||||
using Managing.Application.Workers.Abstractions;
|
||||
using Managing.Domain.Statistics;
|
||||
using MediatR;
|
||||
using Microsoft.Extensions.Logging;
|
||||
@@ -19,15 +18,15 @@ public class BalanceTrackingWorker : BaseWorker<BalanceTrackingWorker>
|
||||
|
||||
public BalanceTrackingWorker(
|
||||
ILogger<BalanceTrackingWorker> logger,
|
||||
IServiceProvider serviceProvider,
|
||||
IMediator mediator,
|
||||
IAccountService accountService,
|
||||
IAgentBalanceRepository agentBalanceRepository,
|
||||
IWorkerService workerService)
|
||||
IAgentBalanceRepository agentBalanceRepository)
|
||||
: base(
|
||||
WorkerType.BalanceTracking,
|
||||
logger,
|
||||
TimeSpan.FromHours(1),
|
||||
workerService)
|
||||
serviceProvider)
|
||||
{
|
||||
_mediator = mediator;
|
||||
_accountService = accountService;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using Managing.Application.ManageBot;
|
||||
using Managing.Application.Workers.Abstractions;
|
||||
using MediatR;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using static Managing.Common.Enums;
|
||||
@@ -8,12 +7,12 @@ namespace Managing.Application.Workers;
|
||||
|
||||
public class BotManagerWorker(
|
||||
ILogger<BotManagerWorker> logger,
|
||||
IMediator mediadior,
|
||||
IWorkerService workerService)
|
||||
IServiceProvider serviceProvider,
|
||||
IMediator mediadior)
|
||||
: BaseWorker<BotManagerWorker>(WorkerType.BotManager,
|
||||
logger,
|
||||
TimeSpan.FromMinutes(5),
|
||||
workerService)
|
||||
serviceProvider)
|
||||
{
|
||||
protected override async Task Run(CancellationToken cancellationToken)
|
||||
{
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
using System.Collections.Concurrent;
|
||||
using Managing.Application.Abstractions.Services;
|
||||
using Managing.Application.Hubs;
|
||||
using Managing.Application.Workers.Abstractions;
|
||||
using Managing.Domain.Backtests;
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using static Managing.Common.Enums;
|
||||
|
||||
@@ -11,18 +11,17 @@ namespace Managing.Application.Workers;
|
||||
|
||||
public class NotifyBundleBacktestWorker : BaseWorker<NotifyBundleBacktestWorker>
|
||||
{
|
||||
private readonly IBacktester _backtester;
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private readonly IHubContext<BacktestHub> _hubContext;
|
||||
private readonly ConcurrentDictionary<string, HashSet<string>> _sentBacktestIds = new();
|
||||
|
||||
public NotifyBundleBacktestWorker(
|
||||
IBacktester backtester,
|
||||
IServiceProvider serviceProvider,
|
||||
IHubContext<BacktestHub> hubContext,
|
||||
ILogger<NotifyBundleBacktestWorker> logger,
|
||||
IWorkerService workerService)
|
||||
: base(WorkerType.NotifyBundleBacktest, logger, TimeSpan.FromMinutes(1), workerService)
|
||||
ILogger<NotifyBundleBacktestWorker> logger)
|
||||
: base(WorkerType.NotifyBundleBacktest, logger, TimeSpan.FromMinutes(1), serviceProvider)
|
||||
{
|
||||
_backtester = backtester;
|
||||
_serviceProvider = serviceProvider;
|
||||
_hubContext = hubContext;
|
||||
}
|
||||
|
||||
@@ -30,8 +29,12 @@ public class NotifyBundleBacktestWorker : BaseWorker<NotifyBundleBacktestWorker>
|
||||
{
|
||||
try
|
||||
{
|
||||
// Create a new service scope to get fresh instances of services with scoped DbContext
|
||||
using var scope = _serviceProvider.CreateScope();
|
||||
var backtester = scope.ServiceProvider.GetRequiredService<IBacktester>();
|
||||
|
||||
// Fetch all running bundle requests
|
||||
var runningBundles = _backtester.GetBundleBacktestRequestsByStatus(BundleBacktestRequestStatus.Running);
|
||||
var runningBundles = await backtester.GetBundleBacktestRequestsByStatusAsync(BundleBacktestRequestStatus.Running);
|
||||
|
||||
foreach (var bundle in runningBundles)
|
||||
{
|
||||
@@ -39,7 +42,7 @@ public class NotifyBundleBacktestWorker : BaseWorker<NotifyBundleBacktestWorker>
|
||||
if (string.IsNullOrEmpty(requestId)) continue;
|
||||
|
||||
// Fetch all backtests for this bundle
|
||||
var (backtests, _) = _backtester.GetBacktestsByRequestIdPaginated(requestId, 1, 100);
|
||||
var (backtests, _) = backtester.GetBacktestsByRequestIdPaginated(requestId, 1, 100);
|
||||
if (!_sentBacktestIds.ContainsKey(requestId))
|
||||
_sentBacktestIds[requestId] = new HashSet<string>();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user