61 lines
1.6 KiB
C#
61 lines
1.6 KiB
C#
using System;
|
|
using AyaNova.Biz;
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
namespace AyaNova.Models
|
|
{
|
|
|
|
/// <summary>
|
|
/// Operations job
|
|
/// </summary>
|
|
public class OpsJob
|
|
{
|
|
[Key]
|
|
public Guid GId { get; set; }
|
|
|
|
[Required]
|
|
public DateTime Created { get; set; }
|
|
public uint Concurrency { get; set; }
|
|
|
|
|
|
[Required]
|
|
public string Name { get; set; }
|
|
|
|
//------------------------
|
|
[Required]
|
|
public bool Exclusive { get; set; }//true lock api and don't run other jobs until completed / false=run any time with other jobs async
|
|
public DateTime StartAfter { get; set; }
|
|
[Required]
|
|
public JobType JobType { get; set; }
|
|
public JobSubType SubType { get; set; }
|
|
public long ObjectId { get; set; }
|
|
public AyaType ObjectType { get; set; }
|
|
[Required]
|
|
public JobStatus JobStatus { get; set; }
|
|
|
|
/// <summary>
|
|
/// Json string of any required extra info for job
|
|
/// </summary>
|
|
public string JobInfo { get; set; }//json as string of any required extra info for job
|
|
|
|
|
|
public OpsJob()
|
|
{
|
|
GId = new Guid();
|
|
Created = DateTime.UtcNow;
|
|
Name = "new job";
|
|
Exclusive = false;
|
|
StartAfter = Created;
|
|
JobType = JobType.NotSet;
|
|
SubType = JobSubType.NotSet;
|
|
ObjectId = 0;
|
|
ObjectType = AyaType.NoType;
|
|
JobStatus = JobStatus.Sleeping;
|
|
JobInfo = null;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|