小编Wil*_*ill的帖子

在MySQL REGEXP中使用非捕获组

出于某种原因,我似乎无法在MySQL中使用非捕获组.有没有办法在MySQL中使用它们REGEXP

对于PHP的PCRE实现中的非捕获组,我使用以下语法:

(?:[PATTERN])
Run Code Online (Sandbox Code Playgroud)

regex mysql

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

CLI进程的ThreadPool

我需要通过Java中的stdin将消息传递给CLI PHP进程.我想在池中运行大约20个PHP进程,这样当我将消息传递给池时,它会将每个消息发送到一个单独的线程,从而保持一个消息队列的传递.我希望这些PHP进程尽可能长时间保持活力,如果一个人死了就会提出一个新进程.我看着使用静态线程池执行此操作,但它似乎更适合执行并简单死亡的任务.我怎么能这样做,用一个简单的接口将消息传递给池?我是否必须实现自己的自定义"线程池"?

php java command-line stdin threadpool

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

Gradle包装器和守护进程

正如你们许多人所知,Gradle守护进程可以大大加速Gradle.

我有一个multimodule构建并使用Gradle包装器.

从命令行运行时:

gradlew :MyModule:test
Run Code Online (Sandbox Code Playgroud)

Gradle花了几秒钟分析我的模块.如果我再次发射,它会一次又一次地消耗宝贵的时间.

我正在使用Gradle 1.12.

我试过设置添加这一行:

org.gradle.daemon=true
Run Code Online (Sandbox Code Playgroud)

到local.properties,但没有运气.

我不知道是否必须更改myHome/.gradle/gradle.properties或其他文件.

gradle gradle-daemon

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

如何从给定列表有效地构造B +树?

我想从给定大小的无序元素列表中构建B +树N.

我知道这样做的最佳界限是?(N / B * logM / B(N / B))块传输,这也是排序的最佳选择; 所以我不能简单地选择一个项目并单独在树中插入,因为它会给我O(N logB(N))块传输.

所以我认为构建树的最佳方法是首先对元素进行排序,因为无论如何都要对树进行排序.从那以后,我很茫然.

我想过这样的事情:

  1. 从列表中取出B元素
  2. 把它们写在某个地方(这是三个叶子)
  3. 采取块的最后一个元素(最大的); 它将是叶子父级的路由键
  4. 对下一个元素重复步骤1,直到父级中有B-1个路由键
  5. B-1父母中有路由键时,表示它已满.所以新的路由密钥将改为"祖父"(因此树增长一级),所有新的叶子将有一个新的父级
  6. 继续这样,直到N/B读取块

基本上,问题在于我没有考虑内部节点可以拥有的最小子节点数.因此,例如,一个节点最终只有一个子节点,这显然是错误的.

我到处寻找,但我找不到实际解释如何构建树的算法?(N / B * logM / B(N / B)).我找到的只是在列表中为每个项目简单插入树的算法,而没有利用B因子.

你能帮助我吗,也许能指出我正确的方向?

algorithm tree b-tree data-structures

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

Android Studio是否使用Gradle Daemon?

我使用Gradle Daemon从命令行构建Android项目,发现它非常快.但是,与命令行相比,Android Studio看起来有点慢,所以让我感到疑惑:Android Studio是否使用Gradle Daemon来加速构建还是其他让它们变慢的东西?

android gradle android-studio gradle-daemon

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

printf 格式字符串中的变量插值与替换

如果在printf(1)格式字符串中放入变量,ShellCheck会发出警告。为什么?

是:

printf "$file does not exist\n"
Run Code Online (Sandbox Code Playgroud)

在某些方面不如:

printf "%s does not exist\n" "$file"
Run Code Online (Sandbox Code Playgroud)

shell printf shellcheck

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

使用 request.stream 上传 ReSTful Flask 文件

我正在尝试创建一个简单的 Flask 端点,用于通过POST或上传文件PUT。我想要filenameURL 中的 ,然后(在请求标头之后)只是在请求中流式传输原始文件数据。

我还需要能够上传略大于 2GB 的文件,并且我需要在不将整个文件存储在内存中的情况下执行此操作。起初,这似乎很简单:

@application.route("/upload/<filename>", methods=['POST', 'PUT'])
def upload(filename):
    # Authorization and sanity checks skipped.

    filename = secure_filename(filename)
    fileFullPath = os.path.join(application.config['UPLOAD_FOLDER'], filename)

    with open(fileFullPath, 'wb') as f:
        copyfileobj(request.stream, f)

    return jsonify({'filename': filename})
Run Code Online (Sandbox Code Playgroud)

通过multipart/formdata上传,我可以简单地调用.save()文件。

但是,我上传的任何文件似乎都有不同的校验和(好吧sha256sum,在服务器上然后在源上)。上传标准文本文件时,换行符似乎被剥离了。二进制文件似乎以其他奇怪的方式被破坏。

Content-Type: application/octet-stream在上传时发送试图让 Flask 将所有上传视为二进制文件。request.stream(到 的代理wsgi.input)是否以非二进制形式打开?我似乎无法从 Flask 代码中弄清楚这一点。如何以原始二进制格式将请求数据流式传输到磁盘上的文件?

我对黑客持开放态度;这是一个测试项目(所以我也没有兴趣听到如何将它作为表单数据发送会更好,或者这不是上传文件的好方法等)

我正在通过以下方式测试:

curl -H 'Content-Type: application/octet-stream' -H 'Authorization: ...' -X PUT --data @/path/to/test/file.name https://test.example.com/upload/file.name
Run Code Online (Sandbox Code Playgroud)

python rest wsgi file-upload flask

5
推荐指数
0
解决办法
1129
查看次数

从共享内存中检索时,PHP是否复制变量?

如果我运行shm_get_var(),它会返回一个"引用",将数据保存在共享内存中吗?

我想在共享内存中保留一个大小约为50MB的数组,这样它就可以被多个进程使用,而不必保留这个50MB数组的多个副本.如果共享内存不是答案,有没有人有另一个想法?

php arrays shared-memory data-structures

4
推荐指数
1
解决办法
1488
查看次数

crontab没有运行wget

所以我试图wget每隔5分钟使用crontab 运行一个命令.我的问题是它没有运行.我确实crontab -l看到了什么在运行,命令就在那里.

命令是: wget --output-document="/Users/proudowner/Desktop/tfgo/bp.json" http://backpack.tf/api/IGetMarketPrices/v1/?key=55085a94ba8d88d1538b4576

错误日志说: /bin/sh: wget: command not found

该命令也没有运行crontab.

cron wget

4
推荐指数
1
解决办法
5152
查看次数

检查forreach循环中变量值的变化

所以我有一个发送到PHP脚本的复选框.基本上,我的复选框当然会创建一个数组.看到它就是其中之一$var[].

基本上,我的数组在代码中看起来像这样:

$vars = array('12345:0','45678:0','78910:0','3434:1','2345:1');

foreach ($vars as $var) {
    $vinfo = explode(":", $var);
    $vgroup = $vinfo[0];
    $vacct = $vinfo[1];

    // Various function calls with those variables. 
}
Run Code Online (Sandbox Code Playgroud)

现在,正如你所看到的那样.我正在分拆vinfo和vaccount.在我的来源.我有两个帐户(在此示例中).有些组属于0,有些组属于1.我想在foreach循环switchAccount("details");中的$vacct变量发生变化时运行该函数.在这种情况下,它应该只切换一次(默认为0).

"帐户"($vacct)开关根据复选框中的用户输入而有所不同.但是(通常)总是上升一个数字.再次,取决于管理员输入.

php foreach loops

4
推荐指数
1
解决办法
1420
查看次数