- 在日终任务的逐日循环中,于当日收盘、风险监控和日终文件生成完成后, 按 valueDate 推送一条 TRS 合约全量快照;区间收盘逐日推送,空日推送空快照。 - 基于 eod_swap、trade、eod_swap_position、swap_position 组装合约字段, Kafka Key 使用 yyyy-MM-dd 格式的 valueDate。 - 新增带 Key 的 Kafka 发送重载;保留原有无 Key 发送及其吞异常行为,避免影响既有调用。 - 推送失败最多尝试 3 次;最终失败记录 Error 日志,并按 eod_swap.id 写入 push_status, 空快照失败使用 record_id=0。 - 增加 ContractTopic 配置,默认及各部署环境使用 onederiv.trs.contract.v1。 - 增加定向单测,覆盖空快照、区间逐日推送、重试成功、三次失败和字段映射。
51 lines
1.2 KiB
C#
51 lines
1.2 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using System.ComponentModel.DataAnnotations.Schema;
|
|
|
|
namespace YLErp.DBModels
|
|
{
|
|
public enum PushStateEnum
|
|
{
|
|
待推送 = 0,
|
|
成功 = 1,
|
|
失败 = 2
|
|
}
|
|
|
|
/// <summary>
|
|
/// 外发推送失败状态。只记录定位信息,不保存报文。
|
|
/// </summary>
|
|
[Table("push_status")]
|
|
public class PushStatus
|
|
{
|
|
[Key]
|
|
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
|
|
public long id { get; set; }
|
|
|
|
[Column("value_date")]
|
|
public DateTime ValueDate { get; set; }
|
|
|
|
[Column("push_type")]
|
|
public int PushType { get; set; }
|
|
|
|
[Column("record_id")]
|
|
public long RecordId { get; set; }
|
|
|
|
[Column("state")]
|
|
public PushStateEnum State { get; set; }
|
|
|
|
[Column("retry_count")]
|
|
public int RetryCount { get; set; }
|
|
|
|
[Column("last_error")]
|
|
public string LastError { get; set; }
|
|
|
|
[Column("push_time")]
|
|
public DateTime? PushTime { get; set; }
|
|
|
|
[Column("create_time")]
|
|
public DateTime CreateTime { get; set; }
|
|
|
|
[Column("update_time")]
|
|
public DateTime? UpdateTime { get; set; }
|
|
}
|
|
}
|