我在 Azure Kubernetes 服务上使用 Apache Ignite。我最近需要从 Ignite 获取注册设备列表。但是扫描查询不起作用。
这是我的设备对象;
public class Device
{
[Required]
public string Id { get; set; }
public bool IsActive { get; set; }
public DateTime FirstRegisterDateTime { get; set; }
public Guid FirstRegisterUserId { get; set; }
}
过滤器类如下所示;
class RegisterDateFilter : ICacheEntryFilter<string, Device>
{
public DateTime LastSyncDateTime { get; set; }
public bool Invoke(ICacheEntry<string, Device> entry)
{
return entry.Value.FirstRegisterDateTime >= LastSyncDateTime;
}
}
最后,当我尝试在我的方法中调用 Scan Query 时,如下所示;
DateTime lastSyncDateTime = engineManager.GetLastSuccededJobTime(JobConstants.DEVICE_JOB);
using (var cursor = cacheManager.DeviceCache.Query(new ScanQuery<string, Device>(new RegisterDateFilter { LastSyncDateTime = lastSyncDateTime })))
{
foreach (var entry in cursor)
{
//logic
}
}
执行扫描查询时,会出现以下错误。
平台不可用 [nodeId=*****-c534-48ae-a5a8-ceb2fff52c72] (使用 Apache.Ignite.Core.Ignition.Start() 或 Apache.Ignite.exe 启动 Ignite.NET 节点;ignite:: Ignition::Start() 或 ignite.exe 启动 Ignite C++ 节点)。
我还分享了 apache 官方示例。没发现是什么问题?