自动识别数据分区字段、主时间字段、雪花Id、更新时间字段、创建时间字段

This commit is contained in:
大石头 2024-07-30 10:58:37 +08:00
parent 2a1d99d167
commit 4b32b4c1b9
8 changed files with 23 additions and 10 deletions

View File

@ -32,7 +32,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.Stardust" Version="3.0.2024.724-beta0746" />
<PackageReference Include="NewLife.Stardust" Version="3.0.2024.728-beta1357" />
</ItemGroup>
<ItemGroup>

View File

@ -37,7 +37,7 @@
<None Remove="Build.tt" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.XCode" Version="11.14.2024.723-beta0709" />
<PackageReference Include="NewLife.XCode" Version="11.14.2024.728-beta1354" />
</ItemGroup>
<ItemGroup>
<None Update="Build.log">

View File

@ -43,7 +43,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.XCode" Version="11.14.2024.723-beta0709" />
<PackageReference Include="NewLife.XCode" Version="11.14.2024.728-beta1354" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AntJob\AntJob.csproj" />

View File

@ -18,7 +18,20 @@ namespace AntJob.Extensions;
public abstract class DataHandler<TEntity> : DataHandler where TEntity : Entity<TEntity>, new()
{
/// <summary>实例化数据处理作业</summary>
public DataHandler() => Factory = Entity<TEntity>.Meta.Factory;
public DataHandler()
{
Factory = Entity<TEntity>.Meta.Factory;
// 自动识别数据分区字段、主时间字段、雪花Id、更新时间字段、创建时间字段
var fact = Factory;
var field = fact.Fields.FirstOrDefault(e => e.Field != null && e.Field.DataScale.StartsWithIgnoreCase("time", "timeShard"));
field ??= fact.Fields.FirstOrDefault(e => e.PrimaryKey && !e.IsIdentity && e.Type == typeof(Int64));
field ??= fact.MasterTime;
field ??= fact.Fields.FirstOrDefault(e => e.Name.EqualIgnoreCase("UpdateTime"));
field ??= fact.Fields.FirstOrDefault(e => e.Name.EqualIgnoreCase("CreateTime"));
Field = field;
}
#region
/// <summary>分批抽取数据,一个任务内多次调用</summary>

View File

@ -47,8 +47,8 @@
<Content Include="favicon.ico" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.Cube.Core" Version="6.1.2024.723-beta2117" />
<PackageReference Include="NewLife.Stardust.Extensions" Version="3.0.2024.724-beta0746" />
<PackageReference Include="NewLife.Cube.Core" Version="6.1.2024.728-beta1411" />
<PackageReference Include="NewLife.Stardust.Extensions" Version="3.0.2024.728-beta1357" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\AntJob.Data\AntJob.Data.csproj" />

View File

@ -50,8 +50,8 @@
<ItemGroup>
<PackageReference Include="NewLife.Core" Version="10.10.2024.723-beta1414" />
<PackageReference Include="NewLife.Remoting" Version="3.0.2024.719-beta0806" />
<PackageReference Include="NewLife.Stardust" Version="3.0.2024.724-beta0746" />
<PackageReference Include="NewLife.Remoting" Version="3.0.2024.729-beta0815" />
<PackageReference Include="NewLife.Stardust" Version="3.0.2024.728-beta1357" />
</ItemGroup>
<ItemGroup>

View File

@ -16,7 +16,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="NewLife.XCode" Version="11.14.2024.723-beta0709" />
<PackageReference Include="NewLife.XCode" Version="11.14.2024.728-beta1354" />
</ItemGroup>
<ItemGroup>

View File

@ -9,7 +9,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="NewLife.Cube.Core" Version="6.1.2024.723-beta2117" />
<PackageReference Include="NewLife.Cube.Core" Version="6.1.2024.728-beta1411" />
</ItemGroup>
<ItemGroup>