小编ign*_*ite的帖子

Haskell中列表的排列

我们得到两个列表xs :: [a]ys :: [Int]。例如:

xs = ["some", "random", "text"]
ys = [2, 3, 1]
Run Code Online (Sandbox Code Playgroud)

我们必须生成一个新列表zs :: [a],它zsxs生成 using的排列ys。对于上面的例子:

zs = ["random", "text", "some"]
Run Code Online (Sandbox Code Playgroud)

解释:“random”出现在第 2 个位置xs,“text”出现在第 3 个位置,“some”出现在第一个位置。

到目前为止,我已经找到了这个解决方案:

f :: [a] -> [Int] -> [a]
f xs ys = getList (listArray (1, n) xs) ys where
  n = length xs
  getList :: Array Int a -> [Int] -> [a]
  getList a ys = [ …
Run Code Online (Sandbox Code Playgroud)

algorithm haskell list permutation

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

接收"ActiveRecord :: StatementInvalid:PG :: ConnectionBad:PQconsumeInput()无法从服务器接收数据:连接超时"在rake任务中

在我的rake任务中,我通过pgbouncer设置连接到postgresql.对于某些查询,我收到此错误:

ActiveRecord::StatementInvalid: PG::ConnectionBad: PQconsumeInput() could not receive data from server: Connection timed out
Run Code Online (Sandbox Code Playgroud)

在我的pgbouncer日志中,我看到了这个条目:

closing because: client unexpected eof (age=3110)
Run Code Online (Sandbox Code Playgroud)

我在我的config/database.yml文件中禁用transaction pool_mode了预准备语句,并在我的pgbouncer配置文件中启用.当我直接连接到postgres时,我没有收到此错误.

同样在我的rake任务中,我正在创建多个线程.我ActiveRecord::Base.connection.reconnect!按照这里的建议尝试在我的线程内运行.这也没有帮助.

我正在使用rails版本4.2.5,它有此修复程序.我仍然收到此错误"无法从服务器接收数据:连接超时".

postgresql activerecord multithreading ruby-on-rails pgbouncer

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