修复long类型时间的定时分表bug
This commit is contained in:
parent
f01cf48003
commit
138ef9c137
|
@ -1,9 +1,9 @@
|
|||
:start
|
||||
::定义版本
|
||||
set EFCORE2=2.4.2.05
|
||||
set EFCORE3=3.4.2.05
|
||||
set EFCORE5=5.4.2.05
|
||||
set EFCORE6=6.4.2.05
|
||||
set EFCORE2=2.4.2.06
|
||||
set EFCORE3=3.4.2.06
|
||||
set EFCORE5=5.4.2.06
|
||||
set EFCORE6=6.4.2.06
|
||||
|
||||
::删除所有bin与obj下的文件
|
||||
@echo off
|
||||
|
|
|
@ -8,6 +8,7 @@ using Microsoft.EntityFrameworkCore;
|
|||
using Sample.SqlServer3x.Domain.Entities;
|
||||
using ShardingCore.Core.PhysicTables;
|
||||
using ShardingCore.Core.VirtualDatabase.VirtualTables;
|
||||
using ShardingCore.Extensions;
|
||||
using ShardingCore.TableCreator;
|
||||
|
||||
namespace Sample.SqlServer3x.Controllers
|
||||
|
@ -39,7 +40,6 @@ namespace Sample.SqlServer3x.Controllers
|
|||
{
|
||||
Console.WriteLine("---------------开始-----------------");
|
||||
var s = DateTime.Now.ToString("HHmmss");
|
||||
|
||||
Task.Run(() =>
|
||||
{
|
||||
try
|
||||
|
|
|
@ -265,7 +265,7 @@ namespace ShardingCore.Extensions
|
|||
{
|
||||
var physicTables = virtualTableManager.GetVirtualTable(entityType).RouteTo(new ShardingTableRouteConfig(predicate: @where));
|
||||
if (physicTables.IsEmpty())
|
||||
throw new ShardingCoreException($"{where.ShardingPrint()} cant found ant physic table");
|
||||
throw new ShardingCoreException($"{where.ShardingPrint()} cant found any physic table");
|
||||
|
||||
var dbs = physicTables.Select(o => shardingDbContext.GetDbContext(dataSourceName, false, routeTailFactory.Create(o.Tail))).ToList();
|
||||
foreach (var dbContext in dbs)
|
||||
|
|
|
@ -54,6 +54,13 @@ namespace ShardingCore.VirtualRoutes.Abstractions
|
|||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public abstract string[] GetCronExpressions();
|
||||
|
||||
/// <summary>
|
||||
/// 当前时间转成
|
||||
/// </summary>
|
||||
/// <param name="now"></param>
|
||||
/// <returns></returns>
|
||||
protected abstract string ConvertNowToTail(DateTime now);
|
||||
public virtual Task ExecuteAsync()
|
||||
{
|
||||
var virtualTableManager = (IVirtualTableManager)ShardingContainer.GetService(typeof(IVirtualTableManager<>).GetGenericType0(EntityMetadata.ShardingDbContextType));
|
||||
|
@ -69,7 +76,7 @@ namespace ShardingCore.VirtualRoutes.Abstractions
|
|||
var virtualDataSourceManager = (IVirtualDataSourceManager)ShardingContainer.GetService(typeof(IVirtualDataSourceManager<>).GetGenericType0(EntityMetadata.ShardingDbContextType));
|
||||
var allVirtualDataSources = virtualDataSourceManager.GetAllVirtualDataSources();
|
||||
var now = DateTime.Now.AddMinutes(IncrementMinutes);
|
||||
var tail = virtualTable.GetVirtualRoute().ShardingKeyToTail(now);
|
||||
var tail = ConvertNowToTail(now);
|
||||
virtualTableManager.AddPhysicTable(virtualTable, new DefaultPhysicTable(virtualTable, tail));
|
||||
foreach (var virtualDataSource in allVirtualDataSources)
|
||||
{
|
||||
|
|
|
@ -32,5 +32,9 @@ namespace ShardingCore.VirtualRoutes.Abstractions
|
|||
/// <returns></returns>
|
||||
protected abstract string TimeFormatToTail(DateTime time);
|
||||
|
||||
protected override string ConvertNowToTail(DateTime now)
|
||||
{
|
||||
return ShardingKeyToTail(now);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,3 +1,6 @@
|
|||
using System;
|
||||
using ShardingCore.Helpers;
|
||||
|
||||
namespace ShardingCore.VirtualRoutes.Abstractions
|
||||
{
|
||||
/*
|
||||
|
@ -29,5 +32,9 @@ namespace ShardingCore.VirtualRoutes.Abstractions
|
|||
/// <returns></returns>
|
||||
protected abstract string TimeFormatToTail(long time);
|
||||
|
||||
protected override string ConvertNowToTail(DateTime now)
|
||||
{
|
||||
return ShardingKeyToTail(ShardingCoreHelper.ConvertDateTimeToLong(now));
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue