小编shA*_*A.t的帖子

在消费者重新连接之前,RabbitMQ会丢失消息

我实现了一个消费者,如果底层连接关闭,它会在一段时间后自动重新连接到代理.我的情况如下:

  1. 成功启动RabbitMQ服务器.
  2. 成功启动消费者.
  3. 发布消息,消费者成功收到消息.
  4. 停止RabbitMQ服务器,消费者将显示异常:

    com.rabbitmq.client.ShutdownSignalException:连接错误; 原因:{#method(reply-code = 541,reply-text = INTERNAL_ERROR,class-id = 0,method-id = 0),null,""}.

    然后消费者将在重新连接前睡60秒.

  5. 再次启动RabbitMQ服务器.
  6. 成功发布消息,命令'list_queues'的结果为0
  7. 60秒后,消费者再次连接到RabbitMQ,但现在收到的消息在步骤#6中发布.
  8. 发布第三条消息,消费者成功收到了消息.

在这种情况下,重新连接之前发布的所有消息都将丢失.我还做了另一个实验.

  1. 启动RabbitMQ,并成功发布消息(未启动任何消费者进程).
  2. 停止RabbitMQ,然后重启它.
  3. 启动消费者流程,成功接收步骤#1发布的消息.

注意:消费者的QOS是1.我已经研究过RabbitMQ几天了,根据我的理解,消费者应该在重新连接之前发布消息.请帮忙(我根据windows rabbitMQ运行测试).

以下是PUBLISHER:

ConnectionFactory factory = new ConnectionFactory();
factory.setHost(this.getHost());
connection = factory.newConnection();
Channel channel = connection.createChannel();               
channel = conn.createChannel();
// declare a 'topic' type of exchange
channel.exchangeDeclare(exchangeName, "topic");
// Content-type "application/octet-stream", deliveryMode 2
// (persistent), priority zero
channel.basicPublish(exchangeName, routingKey, MessageProperties.PERSISTENT_BASIC, message);
connection.close();
Run Code Online (Sandbox Code Playgroud)

消费者如下:

    @Override
public void consume(final String exchangeName, final String queueName, final String routingKey,
        final …
Run Code Online (Sandbox Code Playgroud)

amqp rabbitmq

3
推荐指数
2
解决办法
7907
查看次数

使用 ASP.NET Idenity 创建默认用户帐户

我正在使用 ASP.NET MVC 5 和 Identity API 开发一个简单的应用程序。我想问如何在创建表和启动应用程序时在超级管理员角色中创建超级管理员帐户。我正在使用 Visual Studio 2013 的默认 ASP.NET MVC 5 和个人帐户模板,我不确定如何实现我的目标。

c# asp.net asp.net-mvc asp.net-identity

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

用于在Outlook邮件中搜索的Excel VBA

我正在开发一个项目,其中我有一个帐户ID列表,我正在尝试做的是创建一个将与Outlook连接的宏,在我的收件箱中搜索具有特定条件的任何电子邮件,然后返回"如果找到Y"或"N",如果找到,则发送电子邮件的人和发送的时间.下面是我正在使用的代码; 我需要宏来搜索电子邮件的正文而不是主题行.当我用[Body]替换[Body]时,宏运行没有错误,但没有返回电子邮件(我放置了几个测试电子邮件以便捕获).我正在运行Excel和Outlook 2007,并且已经在VBA中引用了MS 12.0 Excel和Outlook库.

Sub Work_with_Outlook()

    Set outlookApp = CreateObject("Outlook.Application")

    Dim olNs As Outlook.Namespace
    Dim Fldr As Outlook.MAPIFolder
    Dim olMail As Variant
    Dim sir() As String

    Set outlookApp = New Outlook.Application
    Set olNs = outlookApp.GetNamespace("MAPI")
    Set Fldr = olNs.GetDefaultFolder(olFolderInbox)
    Set myTasks = Fldr.Items

    Set olMail = myTasks.Find("[Subject] = ""123456""")
    If Not (olMail Is Nothing) Then
        olMail.Display
    End If

End Sub
Run Code Online (Sandbox Code Playgroud)

email excel outlook vba

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

在SQL Server 2008中使用逗号分割功能

我知道这个问题已被多次询问,但找不到我需要的东西.

我有这个列"Order",其中包含以下格式的数据.'xxx,yyy,zzzz'
现在当我做我的select陈述时,我需要通过拆分这一列来填充3列

例如

Select Name,
    Surname,
    FirstCommaColumn=xx.UpToFirstColumn
    SecondCommaColumn=xx.FromFirstCommaToLastComma,
    ThirdColumnFromSecondCommaOnwards=FromSecondCommaToEnd
from myTable
--thought of doing something like
CROSS APPLY (SELECT TOP 1 * FROM dbo.SplitFunctionIDontHave(order,',')) AS xx
Run Code Online (Sandbox Code Playgroud)

有些行没有逗号,所以我必须返回空白.我不介意我是在函数中还是在查询本身内,只是不确定如何执行此操作.

如何使用SQL Server 2008执行此操作? 如果有所不同,此选择是视图的一部分

sql t-sql split sql-server-2008

3
推荐指数
1
解决办法
7万
查看次数

使用vbs打开Excel工作簿,运行宏并保存工作簿

  • 我有一个宏,我需要每5分钟运行一次.我有一个vbs调度宏的文件.
  • 宏正在检查某个文件夹中的新文件,将其信息写入表中,然后将文件移动到存档中.
  • 该表与宏在同一个excel文件中!

它正在运行宏,但最后,它问我是否不保存文件.

我需要它来自动保存宏对文件所做的更改!

这是我目前的vbs代码:

Option Explicit

Dim xlApp, xlBook

Set xlApp = CreateObject("Excel.Application")
xlApp.DisplayAlerts = False
Set xlBook = xlApp.Workbooks.Open("W:\Excel Macro\EIM File Maneger\EIM_file_check.xlsm", 0, True)

xlApp.Run "GetFiles"

xlBook.Close true
xlApp.Quit

Set xlBook = Nothing
Set xlApp = Nothing

WScript.Echo "Finished."
WScript.Quit
Run Code Online (Sandbox Code Playgroud)

vbscript excel vba

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

无法加载文件或程序集'Oracle.DataAccess,Version = 4.112.4.0,Culture = neutral,PublicKeyToken = 89b483f429c47342'

我在服务器上安装了oracle 11 gr 2,并下载ODAC112040Xcopy_64bit并安装了.net组件.

Oracle.DataAccess.dll将此位置中存在的内容 复制Oracle_Folder\odp.net\bin\4binVisual Studio项目中的文件夹中

当我执行我的代码时,我遇到了这个异常:

TestOracleConnection.exe中发生了未处理的"System.BadImageFormatException"类型异常

附加信息:无法加载文件或程序集"Oracle.DataAccess,Version = 4.112.4.0,Culture = neutral,PublicKeyToken = 89b483f429c47342"或其依赖项之一.尝试加载格式不正确的程序.

我的代码是:

public string CallCardDetails(string CallCardNo)
{
    //initialize
    using (DataSet ds = new DataSet())
    {
        //connect
        using (OracleConnection conn = new OracleConnection("User Id=oraDB;Password=ora;Data Source=CCT"))
        {
            // Oracle uses : for parameters, not @
            string query = "SELECT idcard from CallCardTable where idcard= :pCallCardNo";

            // Let the using block dispose of your OracleCommand
            using (OracleCommand cmd = …
Run Code Online (Sandbox Code Playgroud)

.net c# oracle

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

YEAR 给出错误

pgAdmin III 总是在年份上给出错误

错误:函数年(日期)不存在第 1 行:SELECT YEAR(geboortedatum) as date_part .....................^ ^^^…………

提示: 没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。********** 错误 **********

错误:函数年(日期)不存在 SQL 状态:42883
提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。
人物:8

我可以得到我需要的整个日期,但我只需要年份,有人可以帮助我,它需要是表中最年轻的年份。

sql postgresql date

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

Excel 2010 VBA:如何导出当前工作表,询问用户保存位置?

.xlsm有一个大型自定义工具栏,其中包含用于处理工作中常见情况的自定义工具.

问题是我经常需要保存结果然后发送给其他用户,但我不想将宏/自定义工具栏保存到已保存的工作簿中.

所以我正在尝试这种方式:添加另一个工作簿,将实际工作表复制/粘贴到新工作簿中,然后我想强制打开另存为.

'copy entire sheet
Cells.Copy
Range("B2").Select 'just to leave only one cell selected when I return 

'Paste into a new workbook sheet 1
Workbooks.Add
Cells.Select
Application.DisplayAlerts = False
ActiveSheet.Paste
Application.DisplayAlerts = True
ActiveSheet.Range("B2").Select 'select only one cell
With Application.FileDialog(msoFileDialogSaveAs)
    .Show
End With
Run Code Online (Sandbox Code Playgroud)

问题是,在我写完文件名并选择目标文件夹并按"保存"后, 我什么都没有保存!根本没有创建文件.

编辑1

可能我不清楚我的意图.我有一个.xlsm用于从其他来源导入和操作日期.我得到了一张包含我需要的所有数据的表(这里没有公式).我需要创建一个新的工作簿,将工作表复制/粘贴到这个新文件中,然后强制打开另存为.此时,我手动选择目标文件夹,输入文件名并选择文件格式,然后按"保存".我需要能够在运行时选择这些东西

实际上问题是Excel并没有真正保存新文件,我不知道为什么.

为什么?

excel vba excel-vba excel-2010

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

T-SQL中的结构类型

据我所知,SQL Server不支持包含其他类型的结构类型,例如,你不能做这样的事情

create type User as(UserId int, Name varchar(10), Address varchar(255))
Run Code Online (Sandbox Code Playgroud)

然后使用它:

declare @user User
set @user.UserId = 10
...
Run Code Online (Sandbox Code Playgroud)

也许有人知道任何有助于模拟这种行为的库/框架,例如它可以是一些使用XML数据类型来保存其值并检索它们的函数集.

我试图解决的问题是在存储过程之间传递大量参数.我有接受近30个参数的程序,而不是将一些逻辑和路径这个参数路由到另一个程序,然后第二个程序为第三个程序制作一些逻辑和路径参数.然后需求发生变化,新参数应添加到所有程序中.对于结构数据类型,它转换为仅在数据类型中添加新字段.另一个优点是可读性.

t-sql sql-server sqldatatypes

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

ExcelReaderFactory,读取第一张表

ExcelDataReaderFactory在 C# 中使用 ,以便读取我的 Excel 文件并将它们插入到数据库中。
现在我正在指定sheetname我想要使​​用的工作表。我可以让它每次都被选为第一张吗?

这是我加载数据的方式。

public IExcelDataReader getExcelReader()
{
    // ExcelDataReader works with the binary Excel file, so it needs a FileStream
    // to get started. This is how we avoid dependencies on ACE or Interop:
    FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read);

    // We return the interface, so that
    IExcelDataReader reader = null;
    try
    {
        if (_path.EndsWith(".xls"))
        {
            reader = ExcelReaderFactory.CreateBinaryReader(stream);
        }
        if (_path.EndsWith(".xlsx"))
        {
            reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
        }
        return reader;
    }
    catch …
Run Code Online (Sandbox Code Playgroud)

c# excel

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