如何在Phoenix中存储内存变量?

时间:2016-10-19 02:44:32

标签: elixir phoenix-framework

我正在尝试分配头像,但是当我尝试使用它时出现错误。

我来自Node背景,我可以在其中分配值,然后根据请求修改它们。我应该怎样看待维持状态?

int dx = old_x - x;
int dy = old_y - y;

if (dx >= 0){
    step_x = 1;
} else {
    step_x = -1;
    dx = fabs(dx);
}

if (dy >= 0){
    step_y = 1;
} else {
    step_y = -1;
    dy = fabs(dy);
}

int dx2 = dx * 2;
int dy2 = dy * 2;

if (dx > dy){
    err =  dy2 - dx;

    for (int i = 0; i <= dx; i++){
        currTool.draw(old_x, old_y);
        if (err >= 0){
            err -= dx2;
            old_y += step_y;
        }
        err += dy2;
        old_x += step_y;
    }
} else {
    err = dx2 - dy;

    for (int i = 0; i <= dy; i++){
        currTool.draw(old_x, old_y);
        if (err >= 0){
            err -= dy2;
            old_x += step_x;
        }
        err += dx2;
        old_y += step_y;
    }
}

1 个答案:

答案 0 :(得分:1)

GenServer之上有一个抽象,称为Agent。来自文档:

  

代理是一种围绕国家的简单抽象。

     

通常在Elixir中,需要共享或存储必须从不同进程或在不同时间点通过相同进程访问的状态。

     

代理模块提供基本的服务器实现,允许通过简单的API检索和更新状态。

Agent不是凤凰城特有的,它是Elixir范围内的。在Elixir指南中有一个great how-to on the subject