我正在设计一个HTTP服务,每天的容量高达5亿个请求(由多个独立机器提供服务).
对于每个请求,我必须生成唯一ID并将其返回给用户.在10分钟的窗口内,ID必须是100%唯一的.(首选1天,全局唯一ID是理想的.)生成该ID不需要服务器 - 服务器通信.
愚蠢的伪会话示例:
Client: GET /foo
Server: Content-Type: text/xml
<root>
<id>ab9d1972-2844-11e0-86b2-000c29544403</id>
<other_data/>
</root>
在上一代HTTP服务中,我使用了UUID.
我对UUID很满意,但有一个问题:它们太长了.在这些请求数量上,这个额外的大小在磁盘空间中明显浪费了日志文件.
创建简短但唯一的标识符的最佳方法是什么?为了让事情变得有价值,我想,算法应该产生UUID长度的一半,而一整天都是唯一的(10分钟应该更短).
理想情况下,建议的算法将在简单的C中具有理智,轻量级的生产质量实现.
更新:生成的ID在GET请求中传递时不应要求URI编码.
我有一个现有的Grails Web应用程序正在生产中并且有30分钟的会话超时.我们正在运行Tomcat(tcServer).
当用户通过身份验证并在某些页面上时,我想要定期轮询对服务器的ajax请求,这些请求不会延长这个30分钟的会话超时 - 这样我们的会话超时就不会被阻止.
问题类似于这个未经回答的asp.net问题,但是在Java/Tomcat领域中没有任何答案可以做到这一点.
如何在不重置tomcat的会话超时的情况下执行经过身份验证的AJAX请求?
是否存在某种过滤器或URL匹配机制,我可以使用它来排除延长会话超时的请求?
我们在数据库中有一个函数,它搜索两个大表以查看是否存在值.这是一个非常大的查询,但它被优化为使用索引,并且通常运行得非常快.
在过去两周内,这个功能已经三次失败并且运行速度非常慢,导致死机和性能不佳.即使在低于峰值使用的时候也会发生这种情况.
使用SQL Server中的"Alter Function"重建函数似乎可以解决这个问题.一旦我们这样做,服务器使用率恢复正常,一切正常.
这使我们认为函数查询计划已经重建,并且正在考虑正确的索引,但我们不知道为什么SQL Server决定突然将查询计划更改为更糟糕的计划.
有没有人有任何想法可能导致这种行为,或如何测试它,或阻止它?我们正在运行SQL Server 2008 Enterprise.
有可能简化这个吗?也许两者相结合?教我干燥的方法: - \
o = old_last_result
if o == 7:
old_last_result_msg = result_7
elif o == 12:
old_last_result_msg = result_12
elif o == 23:
old_last_result_msg = result_23
elif o == 24:
old_last_result_msg = result_24
elif o == 103:
old_last_result_msg = result_103
elif o == 1000:
old_last_result_msg = result_1000
else:
old_last_result_msg = "Error code: #%s" % old_last_result
n = new_last_result
if n == 7:
new_last_result_msg = result_7
elif n == 12:
new_last_result_msg = result_12
elif n == 23:
new_last_result_msg = result_23 …Run Code Online (Sandbox Code Playgroud) 我尝试在FormPanel上使用ComboBox,它的定义如下:
{
xtype: 'combo',
name: 'Reasons',
store: new Ext.data.ArrayStore({
id: 0,
fields: ['myId', 'displayText'],
data: [
[1, 'Reason 1'],
[2, 'Second Reason'],
[3, 'Something else']
]
}),
typeAhead: false,
mode: 'local',
valueField: 'myId',
displayField: 'displayText',
allowBlank: false,
editable: false,
forceSelection: true
}
Run Code Online (Sandbox Code Playgroud)
我想表现得像一个普通的选择元素,当我可编辑为假时我不能再重新选择,当为真时(默认)我需要删除选择(通过退格或删除)才能重新选择.
还有什么我应该关闭以降级组合框以选择或shpuld我考虑使用其他组件?
我担心的是,如果我真的需要普通选择(不太普通 - 具有存储和操作选项的能力非常酷) - combo在我的下一级元素看来,我需要关闭的太多功能,并combo使用箭头呈现为输入什么动作触发所有动作.
我的问题是:
是ExtJS元素是什么使用HTML选择标记,作为选择,渲染为选择?
这个堆栈溢出问题涉及 16 位 Unicode 字符。我想要一个支持 32 位字符的类似解决方案。有关各种 Unicode 图表的列表,请参阅此链接。例如,一系列 32 位字符是Musical Symbols。
上面链接的问题中的答案不起作用,因为它将 System.Int32 值转换为 System.Char,这是一种 16 位类型。
编辑:让我澄清一下,我并不特别关心显示 32 位 Unicode 字符,我只想将字符存储在字符串变量中。
编辑 #2:我写了一个 PowerShell 片段,它使用标记答案及其评论中的信息。我本来想把它放在另一个评论中,但评论不能是多行的。
$inputValue = '1D11E'
$hexValue = [int]"0x$inputValue" - 0x10000
$highSurrogate = [int]($hexValue / 0x400) + 0xD800
$lowSurrogate = $hexValue % 0x400 + 0xDC00
$stringValue = [char]$highSurrogate + [char]$lowSurrogate
Run Code Online (Sandbox Code Playgroud)
Dour High Arch 的答案仍然值得称赞,因为它帮助我最终理解了代理对。
我正在尝试制作一个带有按钮(带有自定义背景图像和系统文本)的动画并将其淡出.实际上这很好.问题是在动画之后它回到它的初始状态.我希望它能够动画并保持这种状态.
谢谢!
通常,散列的目标是将连续函数转换为离散函数:输入中的微小变化应该会导致输出发生很大变化.但是,是否有任何散列算法(粗略地说)会为类似输入返回相似但(仍然不同)的散列值?
(使用它的一个例子是通过检查它们的哈希值是否相似来检查两个文件是否"相似".当然,一些失败总是可以接受的.)
目前我正在使用带有ThreadSafeClientConnManager的DefaultHttpClient.这很好用,但我想用AndroidHttpClient替换它.很遗憾,我无法添加对我来说很重要的UsernamePasswordCredentials.有人可以提供小费或解决方案吗?
给定一个接受自定义用户输入的联系表单(例如地址,主题行,消息),有哪些安全隐患和"陷阱"要小心?
至少,必须验证用户的电子邮件地址(可能使用filter_var()或等效的).根据我的阅读,这也应该防止将额外的标头注入脚本.
虽然主题和消息内容怎么样?这些领域需要卫生设施吗?我认为一个电子邮件客户端会阻止脚本之类的东西自动运行,我并不特别担心像HTML标签这样的东西(如果有人想花时间手工设置电子邮件,这是他们的特权 - 我不会看到它:P).如果卫生的需要,有什么做的没有太侵入(即保持电子邮件的性质相同)的最好方法?
android ×2
ajax ×1
animation ×1
combobox ×1
conditional ×1
extjs ×1
grails ×1
hash ×1
high-load ×1
httpclient ×1
java ×1
javascript ×1
linux ×1
php ×1
powershell ×1
python ×1
security ×1
sql ×1
sql-function ×1
sql-server ×1
tomcat ×1
unicode ×1
uuid ×1