我有一个要求,Azure 函数每分钟触发一次,并检查(在那一分钟)10 分钟前的时间(因此,如果在下午 3:00 触发 -> 它会检查数据库中发送到数据库的行下午 2:50 或更早)。
我似乎无法正确理解。这是我的代码:
public void Run([TimerTrigger("0 */1 * * * *")]TimerInfo myTimer, ILogger log)
{
log.LogInformation($"Timer triggered at {DateTime.Now}");
log.LogInformation($"Checking transactions before / on {DateTime.Now.AddMinutes(-10)}");
List<DebtCollectionList> debtCollections =
_context.Transactions
.Where(x => x.Status == 0
&& x.TransactionDate <= DateTime.Now.AddMinutes(-10))
.Select(x => new DebtCollectionList
{
transaction_id = x.TransactionId,
iin_pan = x.IinPan,
transaction_date = (DateTime)x.TransactionDate,
amount = (decimal)x.Amount
})
.ToList();
我希望列表中填充行,其中
TransactionDate
是此时至少负 10 分钟的时刻。因此,如果时间是下午 3 点,则将填充下午 2:50 及之前的所有行。我正在将行添加到数据库中,但它们没有返回到列表中,我真的认为这与有关
TransactionDate <= DateTime.Now.AddMinutes(-10)
任何建议都会很棒。
我现在可以使用了...我删除了
DateTime.Now.AddMinutes(-10);
并将其创建为变量。
就像这样,现在可以工作了:
var compareDate = DateTime.Now.AddMinutes(-10);
List<DebtCollectionList> debtCollections = _context.Transactions.Where(x => x.Status == 0 && x.TransactionDate <= compareDate).Select(x => new DebtCollectionList
{
transaction_id = x.TransactionId,
iin_pan = x.IinPan,
transaction_date = (DateTime)x.TransactionDate,
amount = (decimal)x.Amount
}).ToList();