我们有一个遗留系统,试图跟踪特定文档保存的所有数据版本.我们最初将JSON作为字符串存储在一些旧版本的Postgres中,但最近我们升级到Postgres 9.3并且我们开始使用JSON列类型.
我们有一个名为"versions"的列,它有一个数组,每个保存的特定文档版本都存储在数组中,所以这样的查询:
SELECT _data_as_json FROM measurements WHERE id = 3307551
Run Code Online (Sandbox Code Playgroud)
像这样返回JSON:
{"reports": {}, "versions": [
{"timestamp": "2014-04-28T19:12:31.567415", "user": 11327, "legacy": {}, "vd_version": 1},
{"timestamp": "2014-05-12T18:03:24.417029", "user": 11331, "legacy": {"lengthmoment": {"moment": {"size": 130}, "length": {"in": 64.0}}, "comments": "", "custom": null}, "vd_version": 1},
{"timestamp": "2014-05-12T21:52:50.045758", "user": 10373, "legacy": {"lengthmoment": {"moment": {"size": 130}, "length": {"in": 64.0}}, "comments": "", "custom": null}, "vd_version": 1},
{"timestamp": "2014-05-14T23:34:37.797822", "user": 10380, "legacy": {"lengthmoment": {"moment": {"size": 130}, "length": {"in": 64.0}}, "comments": "", "custom": null}, "vd_version": 1},
{"timestamp": "2014-07-16T14:56:38.667363", …Run Code Online (Sandbox Code Playgroud) 我想要一个原子中的地图,可以跟踪时间作为Unix时间戳.
所以,在我的主要功能中,我有:
(defn -main [& args]
(println "Server is starting")
(def port (Integer/parseInt (first args)))
(def registry (atom {}))
(run-server port who-is-here registry))
Run Code Online (Sandbox Code Playgroud)
在运行服务器内部,我调用了添加到登录的注册表:
(defn add-to-logged-in-registry
[registry]
(let [moments (Date.)
right-now (.getTime moments)]
(swap! registry conj right-now)))
Run Code Online (Sandbox Code Playgroud)
最后一行给出了这个错误:
线程"main"中的异常java.lang.IllegalArgumentException:不知道如何在clojure.lang.RT.seq的clojure.lang.RT.seqFrom(RT.java:487)中创建ISeq:java.lang.Long (RT.java:468)在clojure.lang.APersistentMap.cons(APersistentMap.java:39)的clojure.lang.RT.conj(RT.java:544)clojure.core $ conj.invoke(core.clj: 83)位于who_is_logged_in上的who_is_logged_in.core $ add_to_logged_in_registry.invoke(core.clj:39)的clojure.core $ swap_BANG_.invoke(core.clj:2107)中的clojure.lang.Atom.swap(Atom.java:51).核心$ listen_and_respond.invoke(core.clj:42)at who_is_logged_in.core $ run_server.invoke(core.clj:52)at who_is_logged_in.core $ _main.doInvoke(core.clj:76)at clojure.lang.RestFn.applyTo (RestFn.java:137)who_is_logged_in.core.main(未知来源)
这是什么意思?
当我在emacs的REPL中尝试这个时,这非常有效:
user> (def registry (atom []))
#'user/registry
user> (let [moments (Date.)
right-now (.getTime moments)]
(swap! registry conj right-now))
[1345698128988]
user> (let [moments (Date.) …Run Code Online (Sandbox Code Playgroud) 我正在开发一个 Clojure 应用程序。我正在服务器上测试它,主要是进入“屏幕”会话并输入:
java -jar lo_login_service-0.2-standalone.jar
然后我按 Control-C 杀死它。然后我做一些改变。然后我再测试一下。
我假设只有 1 个 PID 正在使用。如果我做:
ps aux
Run Code Online (Sandbox Code Playgroud)
我只看到 1 个 PID 正在使用:
das 15028 0.2 22.1 1185300 133520 pts/5 Sl+ Jul26 3:19 java -jar lo_login_service-0.2-standalone.jar
Run Code Online (Sandbox Code Playgroud)
但是如果我运行“htop”,那么我会看到:
15029 das 20 0 1157M 130M 9960 S 0.0 22.2 0:25.85 java -jar lo_login_service-0.2-standalone.jar
15030 das 20 0 1157M 130M 9960 S 0.0 22.2 0:07.29 java -jar lo_login_service-0.2-standalone.jar
15031 das 20 0 1157M 130M 9960 S 0.0 22.2 0:00.02 java -jar lo_login_service-0.2-standalone.jar
15032 das 20 …Run Code Online (Sandbox Code Playgroud) 当 SQLalchemy 返回时:
{u'age': datetime.timedelta(12045),}
Run Code Online (Sandbox Code Playgroud)
我如何获得 12045?我已经尝试过str(),strftime()以及其他一些方法,但没有任何效果。
所以,回到一月份,我去了这里:
我下载了 Emacs 并一直在我的 Mac 上使用它,我喜欢它。我已经开始尝试进入 Elisp 编程。要了解更多信息,我想查找一些函数。所以例如我这样做:
C-h f
Run Code Online (Sandbox Code Playgroud)
然后输入“向下滚动”
这给了我以下文字:
>scroll-down is an interactive built-in function in `window.c'.
>
>It is bound to <kp-prior>, <prior>, C-1, C-x C-1, M-v.
>
>(scroll-down &optional ARG)
>
>Scroll text of selected window down ARG lines.
>If ARG is omitted or nil, scroll down by a near full screen.
>A near full screen is `next-screen-context-lines' less than a full screen.
>Negative ARG means scroll upward.
>If ARG is the atom `-', …Run Code Online (Sandbox Code Playgroud) 如果我这样做:
Rails生成控制器欢迎索引
我得到:
/usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:在'require'中:无法加载此类文件-io /控制台(LoadError)
但是我的宝石列表显示控制台已安装:
宝石清单
*当地的宝石*
动作邮件程序(3.2.17)
动作包(3.2.17)
活动模型(3.2.17)
活动记录(3.2.17)
activeresource(3.2.17)
主动支持(3.2.17)
竞技场(3.0.3)
大十进制(1.2.5,1.2.0)
建造者(3.0.4)
捆绑器(1.6.2)
咖啡轨(3.2.2)
咖啡脚本(2.2.0)
coffee-script-source(1.7.0)
erubis(2.7.0)
execjs(2.0.2)
远足(1.2.3)
i18n(0.6.9)
io控制台(0.4.2)
旅程(1.0.4)
jquery-rails(3.1.0)
json(1.8.1,1.7.7)
邮件(2.5.4)
哑剧类型(1.25.1)
multi_json(1.9.2)
多种语言(0.3.4)
心理(2.0.5,2.0.0)
机架(1.4.5)
机架缓存(1.2)
机架SSL(1.3.4)
机架测试(0.6.2)
导轨(3.2.17)
(3.2.17)
耙子(10.3.0)
rdoc(4.1.1、4.0.1、3.12.2)
无礼(3.3.5)
粗轨(3.2.6)
链轮(2.2.2)
sqlite3(1.3.9)
雷神(0.19.1)
倾斜(1.4.1)
树梢(1.4.15)
tzinfo(0.3.39)
uglifier(2.5.0)
以root身份运行。
如果我这样做:
宝石环境
我得到:
RubyGems环境:
宝石红版本:2.0.14
橄榄球版本:2.0.0(2014-02-24补丁程序级别451)[x86_64-linux]
安装目录:/usr/local/share/ruby/gems/2.0
可执行的RUBY:/usr/bin/ruby2.0
执行目录:/ usr / local / bin
RUBYGEMS平台:
红宝石
x86_64-linux
创业板路径:
/usr/local/share/ruby/gems/2.0
/root/.gem/ruby/2.0
/usr/share/ruby/gems/2.0
宝石配置:
:update_sources =>是
:verbose => true
:backtrace …