经过大量搜索,阅读我发现的每一个教程并在这里提出一些问题后,我终于设法回答了if-none-match和if-modified-自HTTP请求以来的错误(至少我认为).
要快速回顾一下,这就是我在每个可缓存页面上所做的事情:
session_cache_limiter('public'); //Cache on clients and proxies
session_cache_expire(180); //3 hours
header('Content-Type: ' . $documentMimeType . '; charset=' . $charset);
header('ETag: "' . $eTag . '"'); //$eTag is a MD5 of $currentLanguage + $lastModified
if ($isXML)
header('Vary: Accept'); //$documentMimeType can be either application/xhtml+xml or text/html for XHTML (based on $_SERVER['HTTP_ACCEPT'])
header('Last-Modified: ' . $lastModified);
header('Content-Language: ' . $currentLanguage);
Run Code Online (Sandbox Code Playgroud)
此外,每个页面都有自己的URL(适用于所有语言).例如,"index.php"将在英文URL"/ en/home"和法语"/ fr/accueil"下提供.
我的一个大问题是回答"304 Not Modified"到if-none-match和if-modified-since,因为HTTP请求只在需要时.
我发现的最好的文档是:http: //rithiur.anthd.com/tutorials/conditionalget.php
这就是我所做的实现(这段代码在可以缓存的页面上称为ASAP):
$ifNoneMatch = array_key_exists('HTTP_IF_NONE_MATCH', $_SERVER) ? $_SERVER['HTTP_IF_NONE_MATCH'] : …Run Code Online (Sandbox Code Playgroud) 首先,这不是要求算法将NFA转换为DFA的问题.
众所周知(并且证明)NFA的等效DFA最多有2 n个状态,即使大多数时候它与NFA的状态数或多或少相同.
我如何预测NFA等效DFA所具有的州数量?哪种特定类型的NFA需要等效DFA才能拥有2 n个状态?
我之所以提出这个问题,是因为能够"发明"一些肯定会产生的NFA,而不考虑最小化,2 n - 1个状态加上"死态".
我有两个表,记录正从外部源连续插入这些表.让我们说这些表保持用户交互的统计数据.当用户单击按钮时,该单击的详细信息(用户,点击时间等)将写入其中一个表.当用户将鼠标悬停在该按钮上时,会将记录添加到其他表中.
如果有很多用户经常与系统交互,那么将会生成大量数据,这些表将会大大增加.
当我想查看数据时,我希望以小时或每日分辨率查看数据.
是否有一种方法或最佳实践可以按要求的分辨率逐步(按数据收集)连续汇总数据?
或者有更好的方法解决这类问题吗?
PS.到目前为止我发现的是像Talend这样的ETL工具可以让生活更轻松.
更新:我目前正在使用MySQL,但我想知道无论数据库,环境等最佳实践.
注意:我编辑了这个问题,以便其他有相同问题的人更容易在这里获得帮助.要查看更符合某些答案的原始问题,请查看编辑历史记录.
在一个项目中,我有一个ExecutionManager类,可以包含多个ExecutionSlot的实例.ExecutionSlot类有几个公共事件字段,如下所示:
public event EventHandlers.ObjectEventHandler<IPlugin> ExecuteCompleted;
Run Code Online (Sandbox Code Playgroud)
对于每个事件,ExecutionManager上都有一个匹配事件.期望的行为是每次执行时都会引发一个事件,匹配事件也会在包含的ExecutionManager上引发.
实施的解决方案是每当ExecutionSlot被添加到ExecutionManager时,ExectionManager会将自己的事件添加到ExecutionSlot中,如下所示:
executionSlot.ExecuteCompleted += ExecuteCompleted;
Run Code Online (Sandbox Code Playgroud)
不需要删除ExecutionSlot,因此也不会删除事件.
问题是ExecutionManager上的事件没有被引发.确认ExecutionSlot确认事件后,我发现将上述行更改为以下内容修复了问题:
executionSlot.ExecuteCompleted += (sender, eventArgs) => ExecuteCompleted(sender, eventArgs);
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么,所以我的问题是,差异是什么.
造成这种差异的原因是,第一个将ExecutionManager事件的当前侦听器添加到ExecutionSlot的事件中.因此,在引发事件时不会调用稍后添加的任何侦听器.相比之下,后一种解决方案使用lambda来提升ExecutionManager的事件,这意味着将调用事件发生时的侦听器.
第一个解决方案失败的根本原因是委托是不可变的.因此,当您向事件添加新委托时,实际上是在创建一个包含现有委托和添加的新委托.因此,之前对代理人的任何引用都不包含新添加的委托.
我希望在每次迭代中并排打印变量sum/NR.我们如何避免awk在每次迭代中打印换行符?在我的代码中,默认情况下会在每次迭代中打印换行符
for file in cg_c ep_c is_c tau xhpl
printf "\n $file" >> to-plot.xls
for f in 2.54 1.60 800
awk '{sum+=$3}; END {print sum/NR}' ${file}_${f}_v1.xls >> to-plot-p.xls
done
done
Run Code Online (Sandbox Code Playgroud)
我希望输出看起来像这样
cg_c ans1 ans2 ans3
ep_c ans1 ans2 ans3
is_c ans1 ans2 ans3
tau ans1 ans2 ans3
xhpl ans1 ans2 ans3
Run Code Online (Sandbox Code Playgroud)
我目前的出局是这样的
**cg_c**
ans1
ans2
ans3
**ep_c**
ans1
ans2
ans3
**is_c**
ans1
ans2
ans3
**tau**
ans1
ans2
ans3
**xhpl**
ans1
ans2
ans3
Run Code Online (Sandbox Code Playgroud) 我是HQL的新手并且有一个我需要转换的SQL表达式但是我无法选择SQL语句:
select SenseDate as Time,SenseValue as Value
from UserData
where NetworkID = '23'
and IODeviceID = '129'
and SenseDate >= DateAdd("d",-1, GETDATE())
and SenseDate<=GETDATE()
Run Code Online (Sandbox Code Playgroud)
我可以在HQL中运行这部分而不会出现问题:
from UserData
where NetworkID = '23'
and IODeviceID = '129'
and SenseDate >= DateAdd(d,-1, GETDATE())
and SenseDate<=GETDATE()
Run Code Online (Sandbox Code Playgroud)
但是我只想要返回SenseDate和SenseValue值,有人可以告诉我如何选择,当我尝试添加select SenseDate, SenseValue等.我一直在Netbeans中得到错误
当我进入1状态时如何获得英语其他状态.
我的意思是
我有一个名词,我想得到其他调整.
$word_list=get_list('play','n');
Run Code Online (Sandbox Code Playgroud)
然后我想得到v,adj,adv等等,..
在Jersey中,我们如何"替换"与已知状态代码关联的状态字符串?
例如
return Response.status(401).build();
Run Code Online (Sandbox Code Playgroud)
生成包含以下内容的HTTP响应:
HTTP/1.1 401 Unauthorized
Run Code Online (Sandbox Code Playgroud)
我(不是我,但客户端应用程序)希望将响应视为:
HTTP/1.1 401 Authorization Required
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法,但徒劳无功:
1)这只是在HTTP响应的主体中添加了String
return Response.status(401).entity("Authorization Required").build();
Run Code Online (Sandbox Code Playgroud)
2)同样的结果:
ResponseBuilder rb = Response.status(401);
rb = rb.tag("Authorization Required");
return rb.build();
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!
-spd