LimeSurvey远程控制 - 在import_survey

时间:2017-05-30 00:47:13

标签: php json-rpc limesurvey

目前使用LimeSurvey版本2.57.1​​ + 161205

我使用远程控制API按需上传LSS调查文件。

我使用3个API调用:

  1. ' import_survey'
  2. ' activate_tokens'
  3. ' activate_survey'
  4. 按顺序

    它一直很好,但现在我发现了一个非常奇怪的问题。以前这个特定的LSS文件上传没有问题,但现在我得到一个例外:

    fopen(https://some.server.com/lime/admin/remotecontrol): failed to open stream: HTTP request failed!
    

    (some.server.com组成,实际域确实存在且工作正常)

    如果我登录LimeSurvey的管理门户,实际上已经创建了调查!但由于它会导致异常,因此API调用 import_survey 永远不会返回调查ID ,这会使 activate_tokens activate_survey 调用失败。

    我正在使用JSON RPC库https://github.com/fguillot/JsonRPC

    LSS文件大小为631k,但不确定这是否是一个问题,因为系统已成功导入并激活了2个653k的调查。

    旁注:当我打字时,我又做了一次测试,这次调查没有遇到任何问题。这非常令人费解。这里可能存在某种时间问题吗?大约5分钟前,这项调查失败了,但现在已经过去了。我还在我的开发机器上本地测试了这个版本,这是一个关于Sierra的Macbook Pro,有些调查失败了(那些失败的事件恰好超过600k)。

2 个答案:

答案 0 :(得分:0)

这似乎是超时问题! 我正在使用的RPC客户端默认值为5秒。 看起来LimeSurvey需要超过5秒的时间来处理超过600k(大约)的LSS数据。 因此,当我实例化客户端时,我将超时设置为60秒,例如

$this->ls_rpc_client = new JSONRPClient($api_url);
$this->ls_rpc_client->getHttpClient()->withTimeout(60);

现在我的自动导入程序正常工作,没有任何错误。

答案 1 :(得分:-1)

这可能是你的问题吗?

  

http://embed.plnkr.co/EUNyny/