小编Imb*_*bue的帖子

每5分钟运行一次PHP脚本并避免竞争条件

我有一个php脚本需要每5分钟运行一次.目前我正在使用一个cron作业来运行它(并且效果很好)但是我的主机只允许最少15分钟的时间.

所以我的问题是,我可以使用访问者每5分钟触发一次php脚本的运行.我可以轻松记录上次运行的时间,并根据已用时间重新运行它.

但是,我担心比赛条件.重要的是脚本每5分钟才运行一次.

我的脚本大约需要60秒才能运行.在此期间它会写入几个文件.如果脚本多次运行,则会损坏文件.此外,如果我没有10分钟的输入,那么当下一个输入器到达时运行一次是好的.

有没有一些标准的方法来完成这项任务?

谢谢!

php cron

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

C++隐式转换运算符

我试图在C++中找到一个很好的继承解决方案.

我有一个Rectangle类和一个Square类.Square类不能公开继承Rectangle,因为它不能完全满足矩形的要求.例如,一个Rectangle可以分别设置它的宽度和高度,当然这对于Square来说是不可能的.

所以,我的困境.Square显然会与Rectangle共享很多代码; 它们非常相似.

对于examlpe,如果我有这样的功能:

bool IsPointInRectangle(const Rectangle& rect);
Run Code Online (Sandbox Code Playgroud)

它应该适用于广场.事实上,我有很多这样的功能.

所以在制作我的Square类时,我想我会使用一个可公开访问的Rectangle转换运算符的私有继承.所以我的方形类看起来像:

class Square : private Rectangle
{
    public:
        operator const Rectangle&() const;
};
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将Square传递给IsPointInRectangle函数时,我的编译器只是在该上下文中抱怨"Rectangle是一个不可访问的基础".我希望它能够注意到Rectangle运算符并使用它.

我正在努力做甚么可能吗?

如果这不起作用,我可能会将 Rectangle的一部分重构为MutableRectangle类.

谢谢.

c++ inheritance reference

6
推荐指数
2
解决办法
6279
查看次数

寻找比C++中的虚拟继承更好的方法

好吧,我在C++中有一个有点复杂的系统.简而言之,我需要向第三方抽象基类添加方法.第三方还提供了大量也需要新功能的派生类.

我正在使用一个提供标准Shape接口的库,以及一些常见的形状.

class Shape
{
    public:
        Shape(position);
        virtual ~Shape();

        virtual position GetPosition() const;
        virtual void SetPosition(position);

        virtual double GetPerimeter() const = 0;

    private: ...
};

class Square : public Shape
{
    public:
        Square(position, side_length);
    ...
};

class Circle, Rectangle, Hexagon, etc
Run Code Online (Sandbox Code Playgroud)

现在,这是我的问题.我希望Shape类还包含GetArea()函数.所以看起来我应该做一个:

class ImprovedShape : public virtual Shape
{
    virtual double GetArea() const = 0;
};

class ImprovedSquare : public Square, public ImprovedShape
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

然后我去制作一个继承自ImprovedShape和Square的ImprovedSquare.好吧,正如你所看到的,我现在已经创建了可怕的钻石继承问题.如果第三方库为其Square,Circle等使用虚拟继承,则可以很容易地解决这个问题.但是,让他们这样做并不是一个合理的选择.

那么,当您需要向库中定义的接口添加一些功能时,您会怎么做?有一个很好的答案吗?

谢谢!

c++ inheritance multiple-inheritance

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

C++比较成员函数指针

在C++中,是否可以为成员函数指针定义排序顺序?似乎运算符<未定义.此外,施放到void*是违法的.

class A
{
    public:
        void Test1(){}
        void Test2(){}
};

int main()
{
    void (A::* const one)() = &A::Test1;
    void (A::* const two)() = &A::Test2;

    bool equal = one == two; //Equality works fine.
    bool less = one < two; //Less than doesn't.

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

c++ pointers member-function-pointers

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

免费波表合成器?

我需要在 ARM Cortex-M3 内核中实现波表合成器。我正在寻找任何代码或工具来帮助我入门。

我知道这个 AVR 实现。我实际上不久前将其转换为 PIC。现在我正在寻找类似的东西,但听起来更好一点。

ANSI C 代码会很棒。任何代码片段(C 或 C++)、示例、工具或只是一般信息将不胜感激。

谢谢。

audio microcontroller arm synthesizer sound-synthesis

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

使用Get Parameters在PHP中创建链接

我是php的新手,但我正在开发一个简单的网页.

此页面可以使用不同的参数进行配置.所以,它可以被称为:

www.example.com/index.php?test=1&foo=3&bar=4

现在我的问题是,生成到当前页面的链接但是有一个参数改变的成语是什么?

例如,我想将foo更改为5,生成链接的最简单方法是:

www.example.com/index.php?test=1&foo=5&bar=4

I can loop through and do it manually, but I figured there would be some common idiom for this.

Thanks a ton!

php

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

隐式转换到 Const

为什么是:

int *a = 0;
int const *b = a;  /* Totally fine. */

int **c = 0;
int const **d = c; /* Generates a nasty warning. */
Run Code Online (Sandbox Code Playgroud)

隐式转换为更 const 的类型不是应该可以吗?

有什么好的方法可以解决它吗?基本上我有以下数组:

int **a;
Run Code Online (Sandbox Code Playgroud)

我想在没有丑陋的显式转换的情况下调用以下函数:

void foo1(int const **a);
void foo2(int const * const *a);
Run Code Online (Sandbox Code Playgroud)

c

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