ProcessingDocumentsWorker.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System.Collections.Generic;
  2. using System.IO.Abstractions;
  3. using System.Threading.Tasks;
  4. using BO.ProcessServer.Business.StatisticCounters;
  5. using BO.ProcessServer.Business.Workers.Contexts;
  6. using BO.ProcessServer.Options;
  7. using Connector.PS;
  8. using Quadarax.Foundation.Core.Logging;
  9. using Quadarax.Foundation.Core.Thread;
  10. namespace BO.ProcessServer.Business.Workers
  11. {
  12. internal class ProcessingDocumentsWorker: LoopWorker
  13. {
  14. private const string CS_WK_NAME = "ProcessingDocument";
  15. public ProcessingDocumentsWorker(Configuration configuration,IList<ServerProcess> processes, Connection connection, IFileSystem fileSystem,Statistics statistics, Pool pool, ILogger logger)
  16. : base(CS_WK_NAME, new ProcessingDocumentsCtx(configuration, processes, connection, fileSystem, statistics, pool), logger)
  17. {
  18. }
  19. public ProcessingDocumentsWorker(string workerName) : base(workerName)
  20. {
  21. }
  22. public ProcessingDocumentsWorker(string workerName, IWorkerContext context, ILogger logger = null) : base(workerName, context, logger)
  23. {
  24. }
  25. protected override async Task DoIteration(IWorkerContext context)
  26. {
  27. var ctx = (ProcessingDocumentsCtx)context;
  28. // ensure connection
  29. if (!ctx.Connection.IsOpen)
  30. ctx.Connection.Open(ctx.Configuration.ApiUser, ctx.Configuration.ApiUserPwd, ctx.Configuration.ApiMagic);
  31. }
  32. }
  33. }