小编Wil*_*rys的帖子

如何从其他渠道恢复未确认的AMQP消息,而不是我自己的连接?

似乎我让我的Rabbitmq服务器运行的时间越长,我对未确认消息的麻烦就越多.我很乐意将它们重新排列.实际上似乎有一个amqp命令来执行此操作,但它仅适用于您的连接使用的通道.我制作了一个小的鼠兔脚本,至少尝试一下,但是我要么缺少一些东西,要么就是这样做了(用rabbitmqctl怎么样?)

import pika

credentials = pika.PlainCredentials('***', '***')
parameters = pika.ConnectionParameters(host='localhost',port=5672,\
    credentials=credentials, virtual_host='***')

def handle_delivery(body):
    """Called when we receive a message from RabbitMQ"""
    print body

def on_connected(connection):
    """Called when we are fully connected to RabbitMQ"""
    connection.channel(on_channel_open)    

def on_channel_open(new_channel):
    """Called when our channel has opened"""
    global channel
    channel = new_channel
    channel.basic_recover(callback=handle_delivery,requeue=True)    

try:
    connection = pika.SelectConnection(parameters=parameters,\
        on_open_callback=on_connected)    

    # Loop so we can communicate with RabbitMQ
    connection.ioloop.start()
except KeyboardInterrupt:
    # Gracefully close the connection
    connection.close()
    # Loop until we're fully closed, will stop on …
Run Code Online (Sandbox Code Playgroud)

amqp rabbitmq celery celeryd pika

46
推荐指数
3
解决办法
5万
查看次数

什么特定于Safari的纯CSS黑客在那里?

我想知道是否有任何方法只使用CSS专门为Safari编写CSS.我知道那里必须有东西,但我还没有找到它.

css safari

17
推荐指数
2
解决办法
2万
查看次数

MyISAM唯一键被切断为64字节,导致冲突

我有一个MySQL表将url存储为唯一键.我开始在我的键上发生冲突,因为看起来键本身只是前任64个字节(或者你喜欢的字符,它是latin-1整理的)任何url.因此,如果一个网址超过64个字符,并且我已经有一个类似的网址,则会抛出错误.

例如:

SELECT l.link_id FROM mydb.links l WHERE 
url = 'http://etonline.com/tv/108475_Charlie_Sheen_The_People_Have_Elected_Me_as_Their_Leader/index.html'
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 
'http://etonline.com/tv/108475_Charlie_Sheen_The_People_Have_Elec' for key 'url'
Run Code Online (Sandbox Code Playgroud)

Isnt MyISAM应该有1000字节的密钥长度吗?

编辑:在CREATE TABLE STATUS调用中似乎没有列出前缀长度,它看起来像这样:

CREATE TABLE `links` (
  `link_id` int(11) NOT NULL AUTO_INCREMENT,
  `url` varchar(500) NOT NULL,
  PRIMARY KEY (`link_id`),
  UNIQUE KEY `url` (`url`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

我尝试在256处设置一个像这样:

ALTER TABLE `mydb`.`links` 
DROP INDEX `url`, ADD UNIQUE INDEX `url` (`url`(256) ASC) ;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

ERROR 1062: Duplicate entry '<...64-byte key...>' for key 'url'
SQL Statement:
ALTER TABLE …
Run Code Online (Sandbox Code Playgroud)

mysql myisam unique-index unique-key mysql-error-1062

5
推荐指数
2
解决办法
2330
查看次数