我无法理解如何使用 Quartz 2.3.2 版获取作业的详细信息。
到目前为止,我们使用 Quartz v1.0.x 进行作业,我必须将其升级到最新版本。
这是我们过去获取作业详细信息的方式:
JobDetail job = scheduler.GetJobDetail(task.Name, groupName);
Run Code Online (Sandbox Code Playgroud)
在 2.3.2 版本中,该方法GetJobDetail()不再具有接受 2 个参数的构造函数......相反,它接受一个JobKey参数。
不幸的是,我找不到获得单个 JobKey 的方法。我尝试的是以下内容:
string groupName = !string.IsNullOrEmpty(task.GroupNameExtension) ? task.GroupNameExtension : task.GroupName;
var jobkeys = quartzScheduler.GetJobKeys(GroupMatcher<JobKey>.GroupContains(groupName));
var jobkey = jobkeys.Single(x => x.Name == task.Name);
var jobDetail = quartzScheduler.GetJobDetail(jobkey);
Run Code Online (Sandbox Code Playgroud)
var jobkey = jobkey.Single(...)吗?提前致谢
我们必须实施重试机制。
为了测试RetryProvider,我想要一个假的类在前两次调用时抛出异常,但在第三次调用时返回一个有效的对象。
在正常情况下(不抛出异常)我们可以使用 A.CallTo(() => this.fakeRepo.Get(1)).ReturnsNextFromSequence("a", "b", "c");
我想要类似的东西:
我如何配置我的假货来做到这一点?
提前致谢
我有一个datetime2专栏,以前是nullable。
我们现在需要设置此列,因此我们希望根据需要进行设置,并使用默认值 1970-1-1 迁移该列。
我已创建迁移并将迁移文件编辑为以下内容:
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AlterColumn<DateTime>(
name: "Start",
table: "Project",
nullable: false,
oldClrType: typeof(DateTime),
oldType: "datetime2",
oldNullable: true,
defaultValue: new DateTime(1970, 1, 1));
}
Run Code Online (Sandbox Code Playgroud)
我已经手动添加了该defaultValue: new DateTime(1970, 1, 1));行。
不幸的是,在更新数据库时出现以下错误:
2021-03-22 10:12:55.5398:“UpdateDatabase”中发生错误:Microsoft.Data.SqlClient.SqlException(0x80131904):无法将值 NULL 插入表“dbo.Project”的“Start”列;列不允许为空。更新失败。该语句已终止。
我也尝试通过设置值,defaultValueSql但出现了同样的错误:
defaultValueSql: "'1970-1-1'"
Run Code Online (Sandbox Code Playgroud)
为什么 defaultValue 不起作用,我做错了什么吗?
提前致谢
顺便说一句:这是执行的脚本:
DECLARE @var0 sysname;
SELECT @var0 = [d].[name]
FROM [sys].[default_constraints] [d]
INNER JOIN [sys].[columns] [c] ON [d].[parent_column_id] = [c].[column_id] AND [d].[parent_object_id] = [c].[object_id]
WHERE ([d].[parent_object_id] …Run Code Online (Sandbox Code Playgroud) c# sql-server entity-framework entity-framework-core .net-core
我有一个抽象类:
public abstract class ExampleBase : IExampleBase
{
protected ExampleBase()
{
this.SetupData();
}
protected abstract Dictionary<int, Adress> RelevantData { get; set; }
protected abstract void SetupData();
public void ProcessData()
{
// use RelevantData
}
}
Run Code Online (Sandbox Code Playgroud)
派生类:
public class Example : ExampleBase
{
public Example()
{
}
protected override void SetupData()
{
this.RelevantData = new Dictionary<int, Adress>
{ 1, new Adress { ... } },
{ 2, new Adress { ... } }
}
}
Run Code Online (Sandbox Code Playgroud)
在基类中,ReSharper告诉我
虚构件成员调用
我知道由于执行顺序而调用该方法很危险..但是如何解决这个问题呢?
上下文:我想在每个派生类中设置数据,然后在基类中处理.我想SetupData() …
我正在尝试使用 php 和 bc-math 扩展将 wei 转换为 eth。
尝试使用此函数转换它时:
function wei2eth($wei)
{
return bcdiv($wei,1000000000000000000,18);
}
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
警告:bcdiv():在 C:\xampp\htdocs\test\coindata.php 第 121 行被零除
有没有人使用 bc-math 扩展和 bcdiv 将 wei 转换为 eth 并知道,为什么我会收到此错误?
提前致谢
我有一个非常大的数据库的备份.我想要的是恢复这个数据库,但我的硬盘上没有足够的空间.由于我不需要数据,有没有办法在没有数据的情况下恢复它?
我已经尝试编写架构等脚本,但是当我运行脚本时,它不能正常工作.
提前致谢
我们以一种奇怪的格式从 API 获取序列化日期时间,如下所示:/Date(1574487012797)/
为了使用 反序列化这个值System.Text.Json,我们编写了自己的JsonConverter:
public class DateTimeConverter : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var dateTimeString = reader.GetString();
dateTimeString = dateTimeString.Replace("/Date(", "");
dateTimeString = dateTimeString.Replace(")/", "");
var epoch = Convert.ToInt64(dateTimeString);
var dateTimeOffset = DateTimeOffset.FromUnixTimeMilliseconds(epoch);
return dateTimeOffset.UtcDateTime;
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ssZ"));
}
}
Run Code Online (Sandbox Code Playgroud)
我想为此转换器编写单元测试。我尝试的是以下内容:
public class DateTimeConverterTest
{
private readonly DateTimeConverter testee;
public DateTimeConverterTest()
{
this.testee = new DateTimeConverter();
} …Run Code Online (Sandbox Code Playgroud) 我的Visual Studio遇到一些问题:
突然,它停止显示任何有用的建议。
artikelList包含articles许多属性,但显示的全部是:
此外,当我尝试通过ctrl+f12该方法执行方法时,显示以下错误消息:
我试图重新启动VS17,重新启动我的电脑,重新设置并重新安装VS17,但这没有帮助。
有人也有这些问题,并且知道如何解决吗?
提前致谢
不幸的是,在我们的(遗留)代码库中,有一个类的属性具有类型object,可以是a int或a long.
当试图把它投射到像这样的长时间:
long id = (long) dBLockTabellenOptionen.Id;
我得到以下异常:
例外:DoOneWorkRound中的Fehler:
指定的强制转换无效.指定演员表无效. - >指定的强制转换无效.
--- Exception Liste ---
System.InvalidCastException:指定的强制转换无效.
如何在long没有异常的情况下将其保存为一个?
免责声明:我知道,这个属性是一个很大的气味,但此时,它的重构将是太多,因为这个应用程序将很快被重写,我们将立即做到这一点
我有一个简单的服务方法,可以调用http post添加 todoList:
add(event: any): Observable<TodoList> {
let todoListToAdd: TodoList = { name: event.target.value, listItems: []};
return this.http.post<TodoList>("https://localhost:44305/todolist", todoListToAdd);
}
Run Code Online (Sandbox Code Playgroud)
我想对这个方法进行单元测试并尝试如下:
import { TestBed, getTestBed } from '@angular/core/testing';
import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing';
import { TodolistService } from './todolist.service';
import { TodoList } from './todolist';
import { HttpResponse } from '@angular/common/http';
describe('TodolistService', () => {
let injector: TestBed;
let service: TodolistService;
let httpMock: HttpTestingController;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [ HttpClientTestingModule ],
providers: [ TodolistService ] …Run Code Online (Sandbox Code Playgroud) unit-testing karma-jasmine angular angular-unit-test angular-test
c# ×7
.net ×6
sql-server ×2
unit-testing ×2
.net-core ×1
angular ×1
angular-test ×1
bcmath ×1
casting ×1
ethereum ×1
fakeiteasy ×1
json ×1
mocking ×1
oop ×1
php ×1
quartz.net ×1
resharper ×1
sql ×1
t-sql ×1