我有一个简单的Sinatra休息,我无法捕获错误.我也承认我对Ruby和Sinatra很新.
当我在post端点中引发并出错时,我想报告传入的文档.我需要1)处理post结果中的错误(我可以访问@incoming)或2)将传入的文档传递给错误并在那里报告.
什么是更好的选择,选项1或选项2?
以下是我的代码示例:
post ('/result') do
begin
@incoming = JSON.parse(request.body.read)
//do something that causes an error
rescue
e = env['sinatra.error']
url = request.url
ip = request.ip
@actlogpassblock = { :message => e.message,
:path => url,
:ip => ip,
:timestamp => Time.new,
:type => "500",
:sub => "RES",
:payload => @incoming
}
action_log.insert(@actlogpassblock)
status 500
end
end
error do
status 500
e = env['sinatra.error']
url = request.url
ip = request.ip
backtrace = "Application error\n#{e}\n#{e.backtrace.join("\n")}"
@actlogpassblock = { :message …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用红宝石宝石'twitter',但由于不明原因,我无法让它工作.
这是.rb代码:
require 'twitter'
puts "Greetings, World!"
puts "Checkpoint 1"
Twitter.configure do |config|
config.consumer_key = "xxxxxxx" #removed for posting
config.consumer_secret = "xxxxxxx" #removed for posting
config.oauth_token = "xxxxxxx" #removed for posting
config.oauth_token_secret = "xxxxxxx" #removed for posting
end
Twitter.verify_credentials
puts "Checkpoint 2"
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Greetings, World!
Checkpoint 1
C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (Twitter::Error::ClientError)
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:in `block in connect'
from C:/Ruby200-x64/lib/ruby/2.0.0/timeout.rb:66:in `timeout'
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:918:in `connect'
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:862:in `do_start'
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:851:in `start'
from C:/Ruby200-x64/lib/ruby/2.0.0/net/http.rb:1367:in …Run Code Online (Sandbox Code Playgroud) 默认情况下,AWS API Gateway 将每个区域每个账户的 API 密钥的最大数量限制为 500,但文档指出,这可以根据请求增加。
最大上限是否有硬上限?是否有不太可能批准的请求的软限制?我可以在最大高端获得 10K 键吗?
我正在遵循AWS 开发人员门户设置演练使用 API 密钥进行授权,并希望确保项目合理扩展到 500 以上。
我在lua中有两个表(在生产中,a有18个元素,b有8个):
local a = {1,2,3,4,5,6}
local b = {3,5,7,8,9}
Run Code Online (Sandbox Code Playgroud)
我需要返回'a'省略'b'中的任何公共元素 - {1,2,4,6},类似于ruby命令ab(如果a和b是数组).
我能想出的最好的lua逻辑是:
local function find(a, tbl)
for _,a_ in ipairs(tbl) do if a_==a then return true end end
end
function difference(a, b)
local ret = {}
for _,a_ in ipairs(a) do
if not find(a_,b) then table.insert(ret, a_) end
end
return ret
end
local a = {1,2,3,4,5,6}
local b = {3,5,7,8,9}
local temp = {}
temp = difference(a,b)
print(temp[1],temp[2],temp[3],temp[4])
Run Code Online (Sandbox Code Playgroud)
我需要非常快速地循环这些表格比较(在生产中每秒最少10K次).有更清洁的方法吗?
======
这是redis服务器端脚本的一部分,我必须保护我的Redis CPU.在一个干净的Lua流程之外,我有两个其他选择:
1.创建两个redis临时密钥然后运行烧结以获得42的大(O)
2.将a和b返回ruby进行数组比较并发回结果. …
我正在构建一个Redis服务器端脚本,而我缺乏Lua经验让我有点陷入困境.
基本上有一个大的"主"排序集(包含〜1,000个值),我想删除在较小的"删除"集(包含~100个值)中找到的任何键.想想sdiffstore,但"主要"设置中的成员分数很重要.
一个简单的例子:
"main"
ZADD main 6 "one"
ZADD main 7 "two"
ZADD main 8 "three"
ZADD main 9 "four"
ZADD main 10 "five"
"remove"
ZADD remove "two"
ZADD remove "four"
desired output (stored in a sorted set):
6 "one"
8 "three"
10 "five"
Run Code Online (Sandbox Code Playgroud)
所以在lua服务器端脚本:
- 这很有效
redis.call('zrem','main', 'two','four')
Run Code Online (Sandbox Code Playgroud)
- 这不是
local temp = redis.call('smembers','remove')
redis.call('zrem','main', temp )
Run Code Online (Sandbox Code Playgroud)
我尝试过多次迭代我的语法无济于事.有任何想法吗?
我希望避免将"删除"成员转换为某种字符串或循环,并一次删除一个成员.
谢谢
我有一个托管在 AWS 上的站点,最近该站点因 NXDOMAIN 错误而关闭。该站点之前运行正常,但问题似乎不存在于该站点,因为 Elastic Beanstalk 直接链接 (xxxx-prod.elasticbeanstalk.com) 工作正常。
在我的 Route53 中,我有一个 CNAME 链接到我的 (xxxx-prod.elasticbeanstalk.com) 和 AWS 提供的 SOA 和 4 个 NS 记录。xxxx 是实际站点名称的占位符。运行挖掘...
dig xxxx.com any
; <<>> DiG 9.8.3-P1 <<>> xxxx.com any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 63003
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;xxxx.com. IN ANY
;; AUTHORITY SECTION:
com. 895 IN SOA a.gtld-servers.net. nstld.verisign-grs.com. 1435723016 …Run Code Online (Sandbox Code Playgroud) lua ×2
redis ×2
ruby ×2
server-side ×2
api-design ×1
cname ×1
dns ×1
gem ×1
ip-address ×1
oauth ×1
optimization ×1
rest ×1
sinatra ×1
twitter ×1