ITaskItemData.cs 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Quadarax.Foundation.Core.Business.Processor.Enums;
  2. using Quadarax.Foundation.Core.Data;
  3. using Quadarax.Foundation.Core.Object;
  4. namespace Quadarax.Foundation.Core.Business.Processor.Task
  5. {
  6. public interface ITaskItemData : ITaskIdentifier, ITimeTracked, IEquatable<ITaskItemData>
  7. {
  8. #region *** Properties ***
  9. /// <summary>
  10. /// Contains the affinity token which is used to identify owning/locking queue.
  11. /// </summary>
  12. IAffinityToken? AffinityToken { get; }
  13. /// <summary>
  14. /// External reference of the task.
  15. /// </summary>
  16. public string Reference { get; }
  17. /// <summary>
  18. /// Status of the task.
  19. /// </summary>
  20. public ProcessStatusEnum Status { get; }
  21. /// <summary>
  22. /// Assembly qualified name of the provider class responsible to process task.
  23. /// </summary>
  24. public string ProviderClass { get; }
  25. /// <summary>
  26. /// Task priority value (0-maximal, 255-minimal / default 100).
  27. /// </summary>
  28. public byte Priority { get; }
  29. /// <summary>
  30. /// Time when task can be processed.
  31. /// </summary>
  32. public DateTime ProcessingValidFrom { get; }
  33. /// <summary>
  34. /// Time when task will be expired.
  35. /// </summary>
  36. public DateTime? ProcessingValidTo { get; }
  37. /// <summary>
  38. /// Defines single attempt timeout. If null, timeout is not used.
  39. /// </summary>
  40. public TimeSpan? AttemptTimeout { get; }
  41. /// <summary>
  42. /// Decremental counter of attempts to try process task.
  43. /// </summary>
  44. public int AttemptsLeft { get; }
  45. /// <summary>
  46. /// Initial attempt count value
  47. /// </summary>
  48. public int InitialAttempts { get; }
  49. /// <summary>
  50. /// Statistical timestamp when task begins to process.
  51. /// </summary>
  52. public DateTime StatStarted { get; }
  53. /// <summary>
  54. /// Statistical timestamp when task finished.
  55. /// </summary>
  56. public DateTime StatFinished { get; }
  57. /// <summary>
  58. /// Latest attempt duration
  59. /// </summary>
  60. public TimeSpan StatLastAttemptDuration { get; }
  61. /// <summary>
  62. /// Collection of task status changes history log items. Ordered by <see cref="ITaskStatusLogItem.Created"/> descending.
  63. /// </summary>
  64. public ITaskStatusLogItem[] StatusLog { get; }
  65. /// <summary>
  66. /// Collection of task arguments.
  67. /// </summary>
  68. public ITypedArgument[] Arguments { get; }
  69. #endregion
  70. }
  71. }