创建内部 WebAPI 2.0 循环
Creating an inner WebAPI 2.0 loop
我正在使用 MongoDB 作为我的数据库编写 WebAPI 2.0。
在写的过程中,需要创建一个内循环
我这样做了:
在
中启动
ConfigureServices (IServiceCollection services)
{
Task.Run (() => _MainClass.InnerLoop ()); // This function has this inner loop
}
后来,我不得不将 MongoDB 数据库上下文“DbContext”传递给此函数。
我不知道怎么做,所以我就这样做了:
- 我创建了一个“post”,我将上一个函数的内容移动到其中。 (以某种方式通过接口传递“DbContext”。如您所知,请在评论中指出)。
- 里面 _MainClass.InnerLoop() 我把
public void InnerLoop()
{
while(true)
{
FunctionToHttpRequest(@"http://localhost:5000/api/MyController RunInnerLoop");
Thread.Sleep(1000);
}
}
我得到了一个模仿我想要的效果。
一个单独的线程是一些客户得到一个错误:
"The SSL connection could not be established, see inner exception. The
remote certificate is invalid according to the validation procedure."
但是我正在努力,正如你在评论中所说的那样。
来自该线程的问题:
如何“专业地”执行这样的循环,即不调用自身,而是将“DbContext”传递给此循环?
我自己解决了这个问题,我想分享解决方案。如果您有任何意见,请写信。
我修改了
public class BaseService
{
protected readonly IDbContext DbContext;
public static IDbContext public_base_dbContext {get; private set;}
public BaseService (IDbContext dbContext)
{
public_base_dbContext = dbContext;
DbContext = dbContext;
}
}
并写信给
public void InnerLoop ()
{
IDbContext _dbContext;
do
{
_dbContext = BaseService.public_base_dbContext;
if (_dbContext == null)
{
Thread.Sleep (1000);
Console.WriteLine (DateTime.Now + "IDbContext search starting ...");
}
} while (_dbContext == null);
这样它从 MongoDB 挂钩 DbContext,我不需要在里面调用 API。
我正在使用 MongoDB 作为我的数据库编写 WebAPI 2.0。
在写的过程中,需要创建一个内循环
我这样做了: 在
中启动 ConfigureServices (IServiceCollection services)
{
Task.Run (() => _MainClass.InnerLoop ()); // This function has this inner loop
}
后来,我不得不将 MongoDB 数据库上下文“DbContext”传递给此函数。
我不知道怎么做,所以我就这样做了:
- 我创建了一个“post”,我将上一个函数的内容移动到其中。 (以某种方式通过接口传递“DbContext”。如您所知,请在评论中指出)。
- 里面 _MainClass.InnerLoop() 我把
public void InnerLoop()
{
while(true)
{
FunctionToHttpRequest(@"http://localhost:5000/api/MyController RunInnerLoop");
Thread.Sleep(1000);
}
}
我得到了一个模仿我想要的效果。 一个单独的线程是一些客户得到一个错误:
"The SSL connection could not be established, see inner exception. The remote certificate is invalid according to the validation procedure."
但是我正在努力,正如你在评论中所说的那样。
来自该线程的问题: 如何“专业地”执行这样的循环,即不调用自身,而是将“DbContext”传递给此循环?
我自己解决了这个问题,我想分享解决方案。如果您有任何意见,请写信。
我修改了
public class BaseService
{
protected readonly IDbContext DbContext;
public static IDbContext public_base_dbContext {get; private set;}
public BaseService (IDbContext dbContext)
{
public_base_dbContext = dbContext;
DbContext = dbContext;
}
}
并写信给
public void InnerLoop ()
{
IDbContext _dbContext;
do
{
_dbContext = BaseService.public_base_dbContext;
if (_dbContext == null)
{
Thread.Sleep (1000);
Console.WriteLine (DateTime.Now + "IDbContext search starting ...");
}
} while (_dbContext == null);
这样它从 MongoDB 挂钩 DbContext,我不需要在里面调用 API。