小编Adi*_*oso的帖子

在 ExpireAt 后不会删除 Hangfire 作业

我使用默认SQL Server存储为Hangfire. 由于每天的工作创造率可能非常高(以数十万计),因此数据库的大小也增长得非常快。

最初我认为它仍然可以,因为Succeeded一天后工作将被删除。令我惊讶的是,即使过了几天,该作业仍未从Hangfire.Jobs表中删除。

当我在 2015 年 7 月 30 日运行此查询时:

select min(ExpireAt) from Hangfire.Job
where StateName = 'Succeeded'
Run Code Online (Sandbox Code Playgroud)

我得到了2015-07-21 13:28:27.543,大约是 9 天前。

我可以自己手动删除作业或创建一个批处理作业来定期清理它,但是是否有任何情况下成功的作业在过期后仍然保留?

sql-server hangfire azure-sql-database

5
推荐指数
0
解决办法
974
查看次数

Visual Studio .sqlproj 始终构建

当我.sqlproj在 Visual Studio 解决方案中有一个 SQL Server 数据库项目 ( ) 时,我注意到每次构建解决方案时总是会构建该特定项目,即使项目文件没有更改。

这与仅在有任何文件更改时构建的普通C#项目 ( .csproj)不一致。

我试过提高msbuild输出的详细程度,它似乎总是在没有特殊原因的情况下构建该项目。

.sqlproj总是建有什么原因吗?有没有办法让它只在文件更改时构建?

sql-server msbuild csproj visual-studio sqlproj

5
推荐指数
1
解决办法
1223
查看次数

Autofac实例注册的SingleInstance()是否在IIS AppDomain回收中存活?

我一直在使用AutofacASP.NET Web API和的集成ASP.NET MVC.一切似乎都运行良好,除了我对注册的对象的生命周期有一些挥之不去的怀疑SingleInstance(),更广泛地说是关于容器本身的生命周期.

例如,如果我按如下方式声明一个类:

public class Cache {
    private Dictionary<int, int> _internalCache = new Dictionary<int, int>();        
}
Run Code Online (Sandbox Code Playgroud)

并将其注册为容器中的单实例:

var builder = new ContainerBuilder();
builder.RegisterType<Cache>.SingleInstance();
var container = builder.Build();
Run Code Online (Sandbox Code Playgroud)

假设我同时使用相同的container实例ASP.NET MVCASP.NET Web API集成,托管IIS,容器和AppDomain回收时在其下注册的实例会发生什么?内容会_internalCache怎样?如果我CacheAppDomain回收之前和之后解决,我仍会得到相同的实例吗?

asp.net iis asp.net-mvc autofac asp.net-web-api

4
推荐指数
1
解决办法
365
查看次数