然后我使用Fluent NHibernate及其自动化功能来映射以下简化的POCO类:
public class Foo
{
public virtual int Id { get; set; }
public virtual datetime CreatedDateTime { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
默认情况下,CreatedDateTime字段将映射到SQL DateTime.但是,如果我进行测试以检查实体是否正确创建,则会失败.这是因为DateTime字段的精度不会保留到SQL数据库.我强调这背后的原因是MS SQL Server DateTime只能通过四舍五入到.000,.003或.007的增量来保持毫秒精度(请参阅http://msdn.microsoft.com/en-us/library /ms187819.aspx).因此,NHibernate在保存到商店时会截断毫秒数.这导致我的测试失败,当检查正确持久的字段,因为我的.NET DateTime保持其毫秒,但在保存已经失去其毫秒之后重新启动DateTime,因此两者不是真正相等.
为了解决这个问题,我将以下映射添加到Foo对象:
public class FooMap : IAutoMappingOverride<Foo>
{
public void Override(AutoMapping<Foo> mapping)
{
mapping.Map(f => f.CreatedDateTime).CustomType("datetime2");
}
}
Run Code Online (Sandbox Code Playgroud)
我知道这个映射使得NHibernate将CreatedDateTime持久化为datetime2的SQL类型,它可以存储.NET DateTime可以的完整精度.这是一种享受,现在测试通过了.
然而,一次传递另一个失败:我检查架构导出的测试现在失败,出现以下错误:
System.ArgumentException : Dialect does not support DbType.DateTime2
Parameter name: typecode
Run Code Online (Sandbox Code Playgroud)
堆栈跟踪:
at NHibernate.Dialect.TypeNames.Get(DbType typecode)
at NHibernate.Dialect.Dialect.GetTypeName(SqlType sqlType)
at NHibernate.Mapping.Column.GetDialectTypeName(Dialect dialect, IMapping mapping)
at NHibernate.Mapping.Table.SqlCreateString(Dialect dialect, IMapping p, String …Run Code Online (Sandbox Code Playgroud) 我们最近一直在实施Scrum,其中一件我们常常想知道的是故事中任务的粒度.
我们公司内部的一些人表示,理想情况下,这些任务应该非常精细,也就是说,有助于提供故事的每一个小部分都应该代表一项任务.他们认为这可以跟踪我们在当前sprint中的表现.
这导致了大量任务,详细说明了许多技术方面和需要完成的小动作,例如为组件X创建DAO以在数据库中保留.我也一直在阅读Ken Schwaber和Mike Beedle的书,使用Scrum进行敏捷软件开发,并且我已经理解任务应该具有这种粒度; 在其中一章中,他们指出任务需要4到16个小时才能完成.
我注意到的是,由于这些小任务我们经常倾向于过度指定事物,当我们的解决方案与我们之前在计划会议中建立的不同时,我们需要创建许多新任务或替换旧任务.团队成员也不必在sprint中跟踪他们正在做的每件事并创建新任务,因为这意味着我们必须在我们的燃尽图中增加我们的总任务,但不一定要添加聚合价值的任务.
那么,理想情况下,每个故事中的任务应该是多么精细?
我正在开发一个Web后端/ API提供程序,它从第三方Web API获取实时数据,将其放入MySQL数据库并通过HTTP/JSON API提供.
我正在使用SQLAlchemy Core为API提供烧瓶并使用DB.
对于实时数据获取部分,我有通过发送请求包装第三方API的函数,将返回的xml解析为Python dict并返回它.我们将调用这些API包装器.
然后我在其他方法中调用这些函数,这些方法获取相应的数据,在需要时进行任何处理(如时区转换等)并将其放入DB中.我们称之为处理器.
我一直在阅读异步I/O和eventlet,我印象非常深刻.
我将把它合并到我的数据抓取代码中,但我先问了一些问题:
猴子修补一切是否安全?考虑到我有烧瓶,SQLAlchemy和一堆其他的库,猴子补丁是否有任何缺点(假设没有后期绑定)?
我应该将任务划分给什么粒度?我在考虑创建一个定期生成处理器的池.然后,一旦处理器到达它调用API包装器的部分,API包装器将启动GreenPile以使用eventlet.green.urllib2获取实际的HTTP数据.这是一个好方法吗?
仅供参考,我有大约10种不同的实时数据,每隔约5-10秒就会产生一个处理器.
谢谢!
我正在接管一个项目,从头开始取代古老的遗留系统.在我上任之前,该公司聘请了一位顾问,他将系统的基本草图放在一起并大力推动SOA.这导致了一长串"实体服务",其目的是将它们组合成更复杂的服务组合.例如,想要委员会信息的用户会点击"委员会"服务,该服务然后调用"人员"服务以获取其成员,并使用"会议"服务来获取其会议,等等.
我理解这方面的灵活性增加,但我关心的是性能.在我看来,为其服务构建了如此精细的粒度级别的系统在翻译服务消息时花费了太多资源,并且性能将是不可接受的.在我看来,仍然可以使用基本的可重用对象来实现灵活性增益,尽管在这种情况下,技术无关的界面的好处会丢失以获得性能.
更多背景信息:请求此软件的组织目前没有稳定的需要集成的第三方软件套件.该软件将取代所有套件.目前还没有外部消费者需要访问所提供的网站界面之外的数据 - 所有服务调用都来自我们系统内的其他部分.在这种情况下,SOA的选择似乎完全基于"准备"的概念.
所以我的问题是 - 在不牺牲性能的情况下,在稳定的服务中可接受的粒度级别是多少?我是否对我们将所有实体作为服务实施的性能命中过于怀疑?功能是否应该仅在需要时作为Web服务提供,而"准备"的重点是设计业务层,以便服务的概率随后被丢弃?
如何在轴x上仅显示整数值?
我绘制了像这样的文件中描述的函数
0 0.5
1 0.25
2 0.125
3 0.0625
4 0
Run Code Online (Sandbox Code Playgroud)
whit这些命令:
set xrange [0:4]
plot "./data_file" using 1:2 with line lw 2
Run Code Online (Sandbox Code Playgroud)
问题在于,通过这样做,我在轴x上可视化值0; 0.5; 1; 1.5; 2; 2.5; 3; 3.5; 4如何仅显示整数值0; 1; 2; 3; 4?
谢谢
我已经彻底阅读了关于表提示的MSDN,我似乎没有找到默认的锁定粒度.假设我有以下查询:
SELECT TOP (1) * FROM MyTable WITH (UPDLOCK, READPAST) ORDER BY SomeColumn ASC;
Run Code Online (Sandbox Code Playgroud)
你看,我指定UPDLOCK和READPAST提示,但没有任何粒度提示,如TABLOCK或ROWLOCK.
默认情况下使用哪种粒度锁定级别?
sql-server locking granularity sql-server-2008 database-locking
我正在开发一个主要基于Zend Framework组件的CMS.此CMS的一些数据库表如下:
site
| id | name |
-------------
locale
| languageCode | regionCode |
-----------------------------
site_locale // link sites with locales
| siteId | languageCode | regionCode | isActive | isDefault |
-------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
我有一个名为的模型Site,其中包括以下方法:
getId()
getName()
listLocales() // list all locales for this site
Run Code Online (Sandbox Code Playgroud)
我对如何定义模型的规模化有所了解:
一种选择是从方法返回SiteLocale对象/模型(换句话说,DB表表示)listLocales(),其中这些SiteLocale对象包含以下方法:
getSite() // returns the Site model
getLocale() // returns a Zend_Locale
isActive() // is this locale active for the site this model represents?
isDefault() // …Run Code Online (Sandbox Code Playgroud) 据我所知,FAT文件系统以2秒的粒度存储文件的时间戳(修改日期等),NTFS以100纳秒的粒度存储它们.
我正在使用带有FileSystemObject的VBScript来显示文件详细信息.函数file.DateLastModified以1秒的精度显示日期(在NTFS上).
有没有办法根据NTFS的内部存储粒度显示精度的时间戳.我想象的是像8/9/2010 14:40:30,1234567
如果没有VBScript/FileSystemObject,还有其他方法吗?
如何在C中获取CPU的内存粒度?
假设我想分配一个数组,其中所有元素都正确内存对齐。我可以将每个元素填充到特定大小 N 来实现这一点。我怎么知道N的值?
注意:我正在尝试创建一个内存池,其中每个插槽都是内存对齐的。任何建议将不胜感激。
granularity ×10
timestamp ×2
agile ×1
architecture ×1
c ×1
datetime ×1
eventlet ×1
gnuplot ×1
integer ×1
locking ×1
models ×1
nhibernate ×1
ntfs ×1
python ×1
scrum ×1
soa ×1
sql-server ×1
task ×1
terminology ×1
vbscript ×1
web-services ×1