小编Zak*_*Zak的帖子

如果REST应用程序应该是无状态的,那么如何管理会话?

我需要一些澄清.我一直在阅读有关REST和构建RESTful应用程序的内容.根据维基百科,REST本身被定义为具象状态转移.因此,我不理解每个人都在喷涌的所有这种无国籍的gobbledeygook.

来自维基百科:

在任何特定时间,客户端可以在应用程序状态之间转换或"静止".处于休眠状态的客户端能够与其用户进行交互,但不会创建任何负载,并且不会在服务器集或网络上消耗每个客户端存储.

他们只是说不使用会话/应用程序级数据存储???

我知道REST的一个目标是使URI访问一致且可用,例如,而不是在帖子中隐藏分页请求,使请求的页码成为GET URI的一部分.我感觉合理.但似乎只是过分夸大说每个客户端数据(会话数据)都不应该存储在服务器端.

如果我有一个消息队列,并且我的用户想要阅读消息,但是当他阅读它们时,想要阻止某些发送者在其会话期间发出的消息,该怎么办?将它存储在服务器端的某个位置并让服务器只发送未被用户阻止的消息(或消息ID)是不是有意义的?

每次请求新邮件列表时,是否真的必须发送整个邮件发件人列表?与我相关的消息列表首先不会/不应该是公开可用的资源.

再次,只是想了解这一点.有人澄清一下.


更新:

我发现了一个堆栈溢出问题,其答案并不能完全解决这个问题: 如何在REST管理状态,该状态表明重要的客户端状态应该在每次请求时都被转移.... Ugg ..似乎很多开销......这是对的吗?

rest session-state

506
推荐指数
10
解决办法
26万
查看次数

C++中线程的简单示例

有人可以发布一个在C++中启动两个(面向对象)线程的简单示例.

我正在寻找实际的C++线程对象,我可以扩展运行方法(或类似的东西),而不是调用C风格的线程库.

更新 - 我遗漏了任何特定于操作系统的请求,希望无论谁回复都会回复使用跨平台库.我现在只是明白了.

c++ multithreading

391
推荐指数
7
解决办法
66万
查看次数

Java计时器

我正在尝试使用计时器来安排应用程序中的重复事件.但是,我希望能够实时调整事件触发的时间段(根据用户输入).

例如:

public class HelperTimer extends TimerTask
{
    private Timer timer;
    //Default of 15 second between updates
    private int secondsToDelay = 15;

    public void setPeriod(int seconds)
    {
        this.secondsToDelay = seconds;
        long delay = 1000; // 1 second
        long period = 1000*secondsToDelay; // seconds
        if (timer != null) 
        {
            timer.cancel();
        }
        System.out.println(timer);
        timer = new Timer();
        System.out.println(timer);
        timer.schedule(this, delay, period);
    }
    public int getPeriod()
    {
        return this.secondsToDelay;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我启动这个类的新实例并调用它的set period函数.但是,当我这样做时,我得到一个非法状态异常.你可以看到System.out.println(计时器); 在那里,因为我正在检查,并且确实,他们是两个不同的计时器...所以当我尝试在一个全新的Timer实例上运行计划调用时,为什么我会收到IllegalStateException!?!?!?!

java.util.Timer@c55e36
java.util.Timer@9664a1
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Task already …
Run Code Online (Sandbox Code Playgroud)

java timer

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

什么是最容易使用的PHP ORM框架?

我正在寻找Ruby的PHP活动记录.这么简单,我只是定义我的字段,扩展基本的ORM类,我免费获得ACID操作.我应该在不编写任何代码的情况下获取默认的getter和setter,但是覆盖默认的getter或setter就像声明get $ fieldName或使用我想要的行为设置$ fieldName函数一样简单.Symphony使您可以为每个对象创建大约5个文件,并且所有已定义的对象始终会加载到我所知的范围内.什么是更好的选择?为什么更好?你能在答案中加上简单的例子吗?

除了交响乐之外,Doctrine是另一个我看过的ORM.您还需要创建描述数据结构的yaml文件.数据库已经定义了这个东西.什么只是读取我的表defs而不必在任何地方生成和存储配置文件?

php orm

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

有没有办法限制Mysql表的索引,以便整体性能不受影响?

我需要将大型数据集加载到生产数据库中.

每个文件需要上传15个文件并插入表格中.每个约500 Mb.

我有两个需要索引的ID列.如果我加载了包含索引的文件,则上传大约需要3个小时.如果我删除索引,加载数据本地infile,然后重新添加索引,整个操作大约需要30分钟.

问题是,数据库响应能力在索引新导入的数据时受到重创.有没有办法让索引运行在"低优先级",以便其他查询仍然可以获得95-100%的速度和背景中的索引类型的突变?

我正在使用Amazon RDS,所以我没有选择只在另一台服务器上加载然后复制表文件.

为此添加赏金,因为我仍然想看看是否有办法在特定框上编制索引时获得良好的性能.

mysql indexing throttling

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

是否存在版本控制数据库存储引擎?

我只是想知道是否存在允许您对行级内容进行版本控制的存储引擎类型.例如,如果我有一个带ID的简单表,名称,值和ID是PK,我可以看到行354以(354,"zak","test")v1开始,然后被更新为(354, "zak","这是值的第2版")v2,并且可以在行上看到更改历史记录,例如选择历史记录(值),其中ID = 354.

这是一种深奥的东西,但每次改变时都必须继续编写这些单独的历史表和函数...

mysql sql database refactoring-databases

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

用于mysql的开源ER图表工具

我想逆向工程(导入图表形式)我拥有的数据库的数据库定义转储,然后因为在这个特定的数据库中没有定义外键,我希望能够手动创建表到表键映射(使用乌鸦如果可能的话,表示符号).

我看了一下MySQL Workbench,它让我获得了85%的成功率.虽然不会出现漂亮的小关系线,但自动排列很糟糕.快速搜索谷歌会出现其他几个选项,所以我可以自己评估这些,但是:

我可以从你们那里得到一些反馈,你最喜欢哪种工具用于这种情况?为什么你喜欢那个(你的)特殊工具?

我的目的是获取遗留数据库,并训练jr.工程师组织数据库.视觉辅助工具很漂亮.我的后备选项是手动重新创建ER图.250+桌子不好玩.

mysql er-diagrams reverse-engineering

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

失去一个程序员,采取什么步骤?

我们团队中的一位程序员正在离开,寻找更加绿色的牧场.我们将从6个到5个.我们应该采取什么步骤来确保我们的开发过程继续顺利进行,同时融入新的血液.

我们目前正在进行具有迭代开发的短发布周期.设计 - 代码 - 审查.离开的人是团队中最资深的开发人员,并且经常会向团队的其他成员提供大量反馈,特别是在设计阶段.

development-process

7
推荐指数
2
解决办法
410
查看次数

使用带有标记的谷歌街景视图,如何将POV指向标记?

我有一个简单的街景工作,给我一个给出地址的街景:

var geocoder = new google.maps.Geocoder();
var address = "344 Laguna Dr, Milpitas, CA  95035";
geocoder.geocode( { 'address': address}, 
    function(results, status) {
        //alert (results);
    if (status == google.maps.GeocoderStatus.OK) {
        //alert(results[0].geometry.location);
        myStreetView = new google.maps.StreetViewPanorama(document.getElementById("map_canvas"));
        myStreetView.setPosition(results[0].geometry.location);
        var marker = new google.maps.Marker({
            position: results[0].geometry.location, 
            map: myStreetView, 
            title:address
        });
        //alert ("yay");
    } else {
        alert("Geocode was not successful for the following reason: " + status);
    }
});
Run Code Online (Sandbox Code Playgroud)

如您所见,我在街景视图中添加了地址标记.我的问题是,街景指向北方,标记位于南方.对于非特定地址,如何指定街景视图应指向地址的标记而不是默认指向北?

google-maps google-maps-api-3 google-maps-markers google-street-view

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

如何在solr查询中排序之前按分数限制

我正在搜索"产品文档".换句话说,我的solr文档是产品记录.我想说一下查询的前50个匹配产品.然后我希望能够按名称或价格对排名前50的得分文件进行排序.我没有看到如何做到这一点,因为按分数排序,然后按名称或价格排序将不会真正有用,因为分数是浮点数.

我不介意我是否可以做一些事情,比如将得分映射到范围(比如得分为8.0-8.99将进入8桶分数),然后按范围排序,然后按名称排序,但因为基本上没有归一化到得分,这仍然会让事情变得更难.

Tl; dr如何在排序之前从solr结果集中排除低得分文档?

solr scoring

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