有没有办法在基于 django 的代码中的两个线程之间共享相同的事务?
\n\n问题是我有 1.1 的 TestCase(那些将单个测试包装到事务中的测试用例),旨在测试在不同线程中运行的代码[一种异步测试]。因此,这些测试创建了一些旨在供第二个线程使用的数据。显然,由于该数据是在事务范围内创建的,因此它对第二个线程不可见。但由于这基本上应该与 PgSQL 具有相同的连接(应该吗?)我希望有一种方法可以共享此事务范围,以便我的第二个线程可以访问其中添加的数据?..
\n\n任何想法?
\n\n数据库是PgSQL 8.3,驱动程序是postgresql_psycopg2。Django \xe2\x80\x94 主干。
\nDrupal有一个非常好的架构,基于jQuery的autocomplete.js.通常,您不必费心,因为它的配置和执行由Drupal表单API处理.
现在,我需要一种在运行时重新配置它的方法(使用JavaScript,即).我有一个标准下拉选择框,旁边有一个文本字段,根据选择框中选择的选项,我需要调用不同的URL进行自动完成,其中一个选项应该完全禁用自动完成.是否可以重新配置现有的自动完成实例,还是我必须以某种方式销毁和重新创建?
我将为一个非政府组织的灵感网站工作,我正在寻求实施某种类似Facebook的事件流,其中包括"迈克尔推荐的苹果派 ","约翰评论巧克力蛋糕 "," 焦糖"等事件fudge发表于8小时前由Alice",etc.发布
事情是这些事件是基于兴趣的,所以有人只对焦糖和樱桃感兴趣,不应该看到苹果馅饼或巧克力蛋糕.这有很多排列,并且即时生成用户的个性化事件流意味着一些相当昂贵的数据库查询.
所以我的想法是通过在发生动作事件时进行某种后台处理来预先生成接收用户和发布事件(可能是一个简单的SQL JOIN表)之间的关系.
将数百个用户的偏好权衡到一个事件所需的工作必然是实质性的,因此它不能作为触发工作的POST请求的一部分来完成,因此我将不得不做很多工作.不同的过程.我目前正在寻找Gearman来完成这项任务,但我对建议持开放态度.
我不是在寻找有人为我做我的工作,但如果有人有任何建立此类事情的经验,我很乐意听到你的想法.
我有以下代码:
Pult.Zone = DS.Model.extend({
name: DS.attr('string'),
authoritative: DS.attr('boolean'),
user_id: DS.attr('number'),
rulesets: DS.hasMany('Pult.Ruleset')
});
Pult.RESTAdapter.map('Pult.Zone', {
primaryKey: 'name',
rulesets: { key: 'rulesetIds' }
});
Run Code Online (Sandbox Code Playgroud)
但是,似乎没有正确地接收主键.我已经呈现了所有区域的列表.
这是一个测试用例:
zones = Pult.store.findAll(Pult.Zone);
zones.get('length'); // Returns 10
zones = Pult.store.findAll(Pult.Zone);
zones.get('length'); // Returns 20
Run Code Online (Sandbox Code Playgroud)
因此,每次从服务器加载区域时,它都会将它们添加到本地列表,因为它不会将它们识别为已存在.有什么方法可以解决这个问题,还是我必须尝试模拟一些代理键?
我在模拟方面遇到一些问题,我通过添加模拟/ssh2-sftp-client.ts文件来模拟节点模块:
const mockSsh2SftpClient = jest.fn().mockImplementation(() => {
return {
connect: async () => {},
end: async () => {},
on: () => {}
}
})
export default mockSsh2SftpClient
Run Code Online (Sandbox Code Playgroud)
这有效,有点。我的测试使用此模拟正确运行,但在测试中 SftpClient.mock.instances[0] 是一个空的 mockConstructor {} 对象,而不是此模拟(即 SftpClient.mock.instances[0].end 未定义)。我究竟做错了什么?作为参考,我的测试代码如下所示:
import { ConnectConfig } from 'ssh2'
import SftpClient from 'ssh2-sftp-client'
import { withSftp } from '../sftp'
// Type assertion to make TypeScript happy.
const MockSftpClient = SftpClient as jest.Mock<SftpClient>
describe(withSftp, () => {
const mockConnectionConfig: ConnectConfig = {}
beforeEach(() => {
// …Run Code Online (Sandbox Code Playgroud) javascript ×2
autocomplete ×1
django ×1
drupal ×1
drupal-6 ×1
ember-data ×1
ember.js ×1
jestjs ×1
jquery ×1
php ×1
postgresql ×1
psycopg2 ×1
transactions ×1
unit-testing ×1