我正在我的 Hangfire 作业中生成一些新数据:
Public Sub Run() Implements IEngine.Run
Dim oTemperature As Temperature
Dim nFahrenheit As Decimal
Dim nCelsius As Decimal
Dim oRandom As Random
oRandom = New Random
nFahrenheit = (oRandom.NextDouble * 100.0) - 20.0 ' Random temperature between -20°F and +80°F
nCelsius = (nFahrenheit - 32.0) * 5.0 / 9.0 ' Convert Fahrenheit to Celsius
oTemperature = New Temperature With {.Fahrenheit = nFahrenheit, .Celsius = nCelsius}
Me.Context.Temperatures.Add(oTemperature)
Me.Context.SaveChanges()
End Sub
如何从作业中获取这些新数据到我的控制器中,以便我可以在页面上显示它?
官方文档似乎没有涵盖这一点,至少据我所知没有。 this question 的答案旨在涵盖它,我相信,但如果是这样,我不明白如何实际实施它。
这是我的控制器中的内容:
Dim oJob As IBackgroundJobClient
oJob = Me.HttpContext.RequestServices.GetService(GetType(IBackgroundJobClient))
oJob.Schedule(Of IEngine)(Sub(Engine) Engine.Run(), TimeSpan.FromMinutes(1))
我尝试将类似 DTO 的对象传递给
Engine.Run()
,然后在那里分配值,但由于某种原因他们没有成功。
这些答案是否完成了我所追求的?如果是这样,我如何将解决方案集成到我现有的代码中?