我目前正在编写WebCrawler,它运行超过8个线程,每个线程获取页面,擦除链接,然后检查链接是否已被捕获。如果它们是新链接,则存储它们。
这一切都有效,但我之后遇到了内存问题,所以我开始迁移爬虫以将数据存储在MySQL数据库中。
我遇到的问题是如何让每个线程独立地与数据库交互,检查数据并在需要时插入数据。
它目前适用于一个线程,但是一旦我扩展线程池,我得到连接已经是打开错误。
每个线程都有自己的连接对象,在线程上创建,用于连接数据库。我是否无知地断定这些联系可以分开?
答案 0 :(得分:1)
道歉,事实证明我的代码中确实存在错误,我在同一个帖子中打开了两次连接。
如果其他人有类似的问题,请参考。可以跨C#的多个线程多次连接到同一个数据库。只要每个连接对象都是线程安全的并且独立于其他连接对象。
我不知道它是安全还是可以通过多个线程共享一个连接。但是,当我开始运行它不是一个我需要测试的问题或问题。
由于