小编wsp*_*irs的帖子

Python多处理池挂在地图调用上

我有一个解析文件的功能,然后使用SQLAlchemy将数据插入MySQL。我一直在按的结果顺序运行该函数,os.listdir()并且一切正常。

因为大部分时间都花在读取文件和写入数据库上,所以我想使用多处理来加快处理速度。这是我的pseduocode,因为实际代码太长:

def parse_file(filename):
    f = open(filename, 'rb')
    data = f.read()
    f.close()

    soup = BeautifulSoup(data,features="lxml", from_encoding='utf-8')

    # parse file here

    db_record = MyDBRecord(parsed_data)

    session.add(db_record)
    session.commit()

pool = mp.Pool(processes=8)

pool.map(parse_file, ['my_dir/' + filename for filename in os.listdir("my_dir")])
Run Code Online (Sandbox Code Playgroud)

我看到的问题是脚本挂起并且永远无法完成。我通常将63条记录中的48条放入数据库。有时更多,有时更少。

我已经尝试过pool.close()并结合使用pool.join(),但似乎都没有帮助。

如何完成此脚本?我究竟做错了什么?我在Linux机器上使用Python 2.7.8。

python mysql multiprocessing

10
推荐指数
2
解决办法
7173
查看次数

如何仅使用标准库对LinkedList进行排序?

Vec提供了一种排序方法(通过Deref实现),但LinkedList没有.在Rust标准库中是否存在允许对LinkedLists 进行排序的通用算法?

rust

6
推荐指数
1
解决办法
492
查看次数

Flask 应用程序中的单个 apscheduler 实例

设置:

  • Flask 应用程序通过 wsgi 在 Apache 的 httpd 中运行
  • 具有 25 个线程的单个 wsgi 进程:WSGIDaemonProcess myapp threads=25
  • apscheduler 运行作业(发送电子邮件)
  • RethinkDB 作为作业存储的后端

我试图通过阻止 apscheduler 的多个实例启动来阻止 apscheduler 多次运行同一作业。目前我正在使用以下代码来确保调度程序仅启动一次:

    if 'SCHEDULER' not in app.config or app.config['SCHEDULER'] is None:
        logger.info("Configuring scheduler")
        app.config['SCHEDULER'] = scheduler.configure()
Run Code Online (Sandbox Code Playgroud)

但是,当我查看日志时,我看到调度程序启动了两次:

[07:07:56.796001 pid 24778 INFO] main.py 57:Configuring scheduler
[07:07:56.807977 pid 24778 INFO] base.py 132:Scheduler started
[07:07:56.812253 pid 24778 DEBUG] base.py 795:Looking for jobs to run
[07:07:56.818019 pid 24778 DEBUG] base.py 840:Next wakeup is due at-10-14 11:30:00+00:00 (in 1323.187678 seconds)
[07:07:57.919869 …
Run Code Online (Sandbox Code Playgroud)

python apache httpd.conf apscheduler

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

哪个库用于弱引用

我意识到事情仍然在变化,但为什么Weak在文档中的两个不同的地方被引用?

std::rc::Weak- http://doc.rust-lang.org/stable/std/rc/struct.Weak.html

alloc::rc::Weak- http://doc.rust-lang.org/stable/alloc/rc/struct.Weak.html

也许我错过了一些东西,但我在两者中看到的唯一区别是fmt函数签名:

impl<T> Debug for Weak<T> where T: Debug
fn fmt(&self, f: &mut Formatter) -> Result<(), Error>
Run Code Online (Sandbox Code Playgroud)

VS

impl<T: Debug> Debug for Weak<T>
fn fmt(&self, f: &mut Formatter) -> Result
Run Code Online (Sandbox Code Playgroud)

那么我应该使用哪一个?他们都被标记为"不稳定".

rust

2
推荐指数
1
解决办法
325
查看次数

每月第 n 天运行 APScheduler 作业

我正在寻找一个 APScheduler 触发器,它将在每个月的第 n 天执行一个作业。例如,我想在每个月的第一个星期二运行一个作业。或者在每个月的第一个和第三个星期一。

有没有人有一个触发器来完成这个?您几乎可以使用 cron 调度程序来完成它,并让您的函数仔细检查它是否在正确的时间运行:Cron 作业在每个月的第一个或最后一个选定的一周运行

python cron apscheduler

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

从cron运行rethinkdb-dump的问题

我正在尝试设置rethinkdb的定期备份,但仍然遇到问题.如何设置rethinkdb-dump从cron运行?

这是我的脚本:

$ cat backup.sh 
#!/bin/bash
NOW=$(date +"%Y-%m-%d-%H-%M")

/usr/bin/rethinkdb dump -e my_db -f /root/db_backup/$NOW.tar.gz
Run Code Online (Sandbox Code Playgroud)

我手动运行时脚本运行正常.但是,当尝试从cron运行它时,它不起作用,我得到以下内容stderr:

Error when launching 'rethinkdb-dump': No such file or directory
The rethinkdb-dump command depends on the RethinkDB Python driver, which must be installed.
If the Python driver is already installed, make sure that the PATH environment variable
includes the location of the backup scripts, and that the current user has permission to
access and run the scripts.
Instructions for installing the RethinkDB Python driver …
Run Code Online (Sandbox Code Playgroud)

python bash cron rethinkdb

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

张量流softmax回归始终预测1

我有以下基于MNIST示例的代码。它有两种修改方式:

1)我没有使用单热向量,所以我只使用 tf.equal(y, y_)

2)我的结果是二进制的:0或1

import tensorflow as tf
import numpy as np

# get the data
train_data, train_results = get_data(2000, 2014)
test_data, test_results = get_data(2014, 2015)

# setup a session
sess = tf.Session()

x_len = len(train_data[0])
y_len = len(train_results[0])

# make placeholders for inputs and outputs
x = tf.placeholder(tf.float32, shape=[None, x_len])
y_ = tf.placeholder(tf.float32, shape=[None, y_len])

# create the weights and bias
W = tf.Variable(tf.zeros([x_len, 1]))
b = tf.Variable(tf.zeros([1]))

# initialize everything
sess.run(tf.initialize_all_variables())

# create the "equation" for y …
Run Code Online (Sandbox Code Playgroud)

python numpy tensorflow softmax

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