标签: queue

Python双端队列

msg = 'afdssav'
MYQ = deque(msg)
MYPQ.append('asdf')
Run Code Online (Sandbox Code Playgroud)

在这里,我试图创建一个字符串deque,但是当我弹出元素或尝试使用Python 2.7从中读取元素时,我会通过char获取char.

我怎样才能使它以与插入字符串相同的方式返回字符串?

即我想MYQ[1]成为'asdf'MYQ.pop()返回msg.

python queue python-2.7

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

PyQt:从GUI向线程发送信息

我的HMI由2个按钮组成:启动和停止,还有一个字段QStatusBar,用于将信息从线程打印到GUI.当我"启动"时,我启动一个可以用Stop按钮中断的线程.我想要做的是在线程中的某个点打开一个弹出窗口,以便在线程暂停时为用户提供选择.

from PyQt4 import QtCore, QtGui
import sys
import os
import time
from PyQt4.QtGui import QApplication, QDialog, QListWidgetItem, QListWidget, QIcon
from test_bench_tool2 import Ui_MainWindow
from popup import Ui_popup

"""Class poppup window(continue/quit)"""
class MyPopup(QtGui.QDialog):
    def __init__(self,type):
        super(MyPopup, self).__init__()
        self.res = 0
        self.type=type
        self.ui = Ui_popup()
        self.ui.setupUi(self)
        QtCore.QObject.connect(self.ui.Quit,QtCore.SIGNAL("clicked()"),self.showDialogstop)
       QtCore.QObject.connect(self.ui.Continue,QtCore.SIGNAL("clicked()"),self.showDialogcontinue)

    def showDialogcontinue(self):
        self.res=1
        self.close()
    def showDialogstop(self):
        self.res=0
        self.close()


class MyThread(QtCore.QThread):
    Statuschanged = QtCore.pyqtSignal(str)
    popupmodechanged = QtCore.pyqtSignal(str)
    def __init__(self, parent=None):
        super(MyThread, self).__init__(parent=parent)
        self.Status_auto = ''
        self.dialog = MyPopup('toto')
        self.Status_auto +=''
        self.popup=''
        self.answer=''

    def run(self): …
Run Code Online (Sandbox Code Playgroud)

python queue user-interface multithreading pyqt

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

什么数据结构可用于循环操作?

什么数据结构最适合存储循环中的对象?例如,我有一个对象列表,A,B,C,D,E,我需要循环处理它们,A-> B-> C-> D-> E,然后是E-> A-> B- > C-> d -...

处理这种情况的最佳方法是什么?谢谢.我正在考虑一个循环数组,但根据维基百科,循环数组最好用于实现一个队列.

java queue circular-buffer

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

如何在python中的线程之间安全地传递变量值

我在python文档中读到Queue.Queue()是一种在不同线程之间传递变量的安全方法.我真的不知道多线程存在安全问题.对于我的应用程序,我需要使用可以从多个不同线程访问的变量开发多个对象.现在我只是让线程直接访问对象变量.我不会在这里显示我的代码,因为它的方式太多了,但这里有一个例子来展示我正在做的事情.

from threading import Thread
import time
import random

class switch:
    def __init__(self,id):
        self.id=id
        self.is_on = False

    def self.toggle():
        self.is_on = not self.is_on

switches = []
for i in range(5):
switches[i] = switch(i)

def record_switch():
    switch_record = {}
    while True:
        time.sleep(10)
        current = {}
        current['time'] = time.srftime(time.time())
        for i in switches:
            current[i.id] = i.is_on
        switch_record.update(current)

def toggle_switch():
    while True:
        time.sleep(random.random()*100)
        for i in switches:
            i.toggle()

toggle = Thread(target=toggle_switch(), args = ())
record = Thread(target=record_switch(), args = ())

toggle.start()
record.start()
Run Code Online (Sandbox Code Playgroud)

据我所知,队列对象只能用于放置和获取值,这显然不适用于我.我在这里"安全"吗?如果没有,我该如何编程,以便我可以安全地从多个不同的线程访问变量?

python queue multithreading

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

Queue :: later()不在Laravel上工作

我正在研究Laravel框架,我遇到了一些队列问题.Laravel提供了一个统一的API来处理队列,我正在研究它.Laravel提供的方法之一是Queue::later(DateTime|int $delay, string $job, mixed $data = '', string $queue = null);

所以,我实现了我的工作类:

<?php

class SendEmail {
    public function send($job, $data) {
        Log::info('JOB: ' . $job->getName());
        Log::info('DATA: ' . $data['message']);
    }
}
Run Code Online (Sandbox Code Playgroud)

上面,我登录了一个文件,收到的参数.只是想知道它是否有效.我的控制器使用Queue API以这种方式调用作业:

<?php

class MyControllerController extends BaseController {

    function index() {
        LOG::debug('Index action STARTED');
        $date = Carbon::now()->addMinutes(2);
        Queue::later($date, 'SendEmail@send', array('message' => 'MY MESSAGE!'));
        $view = View::make('index');
        LOG::debug('Index action FINISHED');
        return $view;
    }
}
Run Code Online (Sandbox Code Playgroud)

看看我正在使用Queue::later().我希望send()类的方法SendEmail在2分钟后执行.好吧,我完成了实现空白视图并设置路线.然后我向我的控制器发出GET请求,然后我去检查日志文件.

我在打开日志文件时看到了这个:

[2014-10-02 16:23:11] production.DEBUG: Index action STARTED …
Run Code Online (Sandbox Code Playgroud)

php queue laravel-4

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

使用c中的链接列表进行排队

在编译期间,此代码不会出错,但代码会突然停止.据我说,问题在于声明的createq函数在哪里q->front=q->rear=NULL.它必须初始化.这有什么不对吗?

#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
struct node
{
    struct node *next;
    int data;
};

struct queue
{
    struct node *front;
    struct node *rear;
};

struct queue *q;

void createq(struct queue *);
struct queue *insert(struct queue *);
struct queue *delete_q(struct queue *);
struct queue *display(struct queue *);

int main()
{
    int option;
    printf("\tMAIN MENU\n");
    printf("\n1. Create\n2. Display\n3. Insert\n4. Delete\n5. Exit\n");
    while(option!=5)
    {
        printf("\nEnter a choice:");
        scanf("%d",&option);
        switch(option)
        {
        case 1:
            createq(q);
            break;

        case 2:
            q=display(q);
            break;

        case 3: …
Run Code Online (Sandbox Code Playgroud)

c queue pointers linked-list

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

如何在推送新对象之前检查队列中是否存在对象

我正在使用Python队列:

q = Queue.Queue()
Run Code Online (Sandbox Code Playgroud)

我正在将某个类的对象放入上述队列中q.put(item).但是,在将项目放入队列之前,我想检查它是否已存在于队列中.有没有办法做到这一点?[没有取出队列中的所有对象然后将它们全部推回]

另外:

我不知道我怎么能真正看到我放入队列的变量(调试时).我正在使用Pydev,而我在variables窗口中看到的只是not_emptynot_full.我怎么能在运行时看到队列中的内容?

python queue pydev

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

Laravel Queue正在重复使用beanstalkd和redis

我正在使用带有beanstalkd驱动程序的laravel Queues(同样的事情发生在redis上),当我推送一个Queue时它只是不断重复

我做的只是:

  1. 安装beanstalkd,运行 beanstalkd
  2. php artisan queue:listen
  3. 在队列侦听的终端窗口中,它每隔几秒就会不断重复: Processed: SendEmail

我以为队列不是空的,所以试着把它冲掉(它是空的),失败的作业表是空的.

第二次测试,停止beanstlkd和队列监听,我有一个控制器简单地说:

..
Queue::push('SendEmail@fire', array('message' => $msg->id));
Run Code Online (Sandbox Code Playgroud)

控制器中根本没有循环,也没有发送电子邮件功能

php queue beanstalkd laravel artisan

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

内部循环中的Ajax调用需要顺序响应

我需要进行3次或更少的ajax调用,并且响应需要按照请求的顺序附加到dom.

我有以下功能,但问题是我得到的响应在被附加到dom时不一定是正确的顺序.

我不想使用async:false属性,因为它会阻止UI,当然它会受到性能影响.

mod.getArticles = function( ){
    //mod.vars.ajaxCount could start at 0-2
    for( var i = mod.vars.ajaxCount; i < 3; i++ ){
        //mod.vars.pushIds is an array with the ids to be ajaxed in
        var id = mod.vars.pushIds[i];

        $.ajax({
            url: '/ajax/article/' + id + '/',
            type: "GET",
            dataType: 'HTML',
            error: function() {
                console.error('get article ajax error');
            }
        }).done( function( data ) {
            if (data.length) {
                mod.appendArticle( data );
            } else {
                console.error('get article ajax output error');
            }
        });
    }
};
Run Code Online (Sandbox Code Playgroud)

javascript queue ajax jquery promise

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

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