小编Osa*_*aHQ的帖子

是否建议长时间等待 C# Channel.Reader.WaitToReadAsync?

BackgroundService/IHostedService在 ASP.NET API 核心应用程序中有一个Channel,它等待在通道上写入其他内容,以便它可以读取并处理它。将项目写入通道的时间间隔可以是每隔几秒或几分钟。

该服务的生命周期很长(与 API 应用程序的生命周期相同),因此通道也是如此。

// Simplified/Example code
using System.Threading.Channels;
// ...
Channel<object> channel = Channel.CreateUnbounded<object>();

protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
    while (await channel.Reader.WaitToReadAsync(stoppingToken))
    {
        while (channel.Reader.TryRead(out string item))
        {
            // Process item
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 是否建议channel.Reader.WaitToReadAsync()长时间等待?(可能需要几分钟才能将项目写入通道)
  • I/O是否channel.Reader.WaitToReadAsync()受限?(使用时会释放线程吗await?)
  • 使用AutoResetEventand 阻塞线程比使用更好吗await/async?(不会浪费 CPU 周期,因为线程只会进入休眠状态)

我主要担心的是channel.Reader.WaitToReadAsync(),CPU 受限并等待很长一段时间,浪费 CPU 资源,并且最好使用其他方法,例如AutoResetEvent

c# asynchronous async-await

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

php symfony2安装缓存权限

我已经下载了 2.0.4...由于权限问题,我无法通过“无法创建缓存目录”...

我已经尝试过chmod 777 -R symfony --所有文件夹,仍然无法创建缓存目录

我已经尝试过setfacl,但它说无法识别的 -m 选项....我的系统不支持chmod +a

我已经做了chown -R myuser:apache symfony ——仍然一事无成

我已经尝试过umask(0000), 但仍然一无所获umask(0002)console.php/app_dev.php/app.php

当我刷新页面时http://localhost/symfony/web/app_dev.php,我收到 SElinux 警报...这是否导致了某些问题?我不确定...所有 symfony 内容都是单词可写的。

我不确定是不是我的问题……但这让我发疯,也许我应该停止使用 symfony2。

我正在使用 Fedora 13。

php permissions caching symfony

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

工厂模式可以这样使用吗?

在我的程序中,一些对象需要其他对象(依赖),而我正在使用Factory作为我的创建模式.

现在,我该如何解决一个简单的依赖问题?

这是我正在做的解决问题的一个例子.我想知道将所需对象发送到Create方法是不是非常错误.

//AbstractBackground
// - SpecialBackground
// - ImageBackground
// - NormalBackground
class Screen{
    List<AbstractBackground> list;
    Cursor cursor;
    ContentManager content;

    public void load(string[] backgroundTypes){
        //is this okay? --------------->
        AbstractBackground background = BackgroundFactory.Create(backgroundTypes[0], cursor, content);
        list.add(background);
    }
}

class BackgroundFactory{
    static public AbstractBackground Create(string type, Cursor cursor, ContentManager content){

        if( type.Equals("special") ){
            return new SpecialBackground(cursor, content);
        }

        if( type.Equals("image") ){
            return new ImageBackground(content);
        }

        if( type.Equals("normal") ){
            return new NormalBackground();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# dependencies design-patterns factory

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

PHP SwiftMailer或PEAR Mail

有人对这两个有一些评论吗?在经验,性能,容易度,问题,垃圾邮件相关等方面

假设您需要每1小时发送一次电子邮件(10-20)(cron job).

php email pear swiftmailer

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

如何将本地 git 存储库移动到根文件夹并保留历史记录?

我有一个位于项目内部的本地 git 存储库。我决定一些代码需要位于另一个项目中,但我只想要一个 git 存储库。

当前目录结构:

Solution->
 - Project1
   - .git
 - Project2
Run Code Online (Sandbox Code Playgroud)

所需的目录结构:

Solution->
 - .git (tracks both projects)
 - Project1
 - Project2
Run Code Online (Sandbox Code Playgroud)

如何移动.git到根文件夹(Solution ),以便它可以开始监视 Project1 和 Project2,而不会丢失修改/提交的跟踪?

笔记:我并不真正关心保留将要移动到 Project2 文件夹的文件的历史记录。

注意:这不是(这个问题)的重复,因为我没有移动 git 存储库及其全部内容。我只想将 git 存储库移至根文件夹。

git

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

symfony删除时记住我的cookie

delete_cookies安全配置文件中有一个:http://symfony.com/doc/current/reference/configuration/security.html

remember_me启用了.一切正常,除非用户进入"注销"链接(直接从网址栏),我希望symfony删除REMEMBERMEcookie.我怎样才能做到这一点?我错过了什么吗?

当我去网址时/app/logout,我可以看到我还有REMEMBERMEcookie 的chrome dev工具.

这是我的security.yml文件:

firewalls:     
    app_secured:
        anonymous: ~
        switch_user: true
        pattern: ^(/$|/login$|/app/)
        form_login:
            login_path: login
            check_path: login_check
            csrf_provider: form.csrf_provider
            default_target_path: index
            always_use_default_target_path: true
        remember_me:
            key: "%secret%"
            lifetime: 2592000
            path: ~
            domain: ~
        logout:
            invalidate_session: true
            delete_cookies:
                REMEMBERME: { path: null, domain: null}
            path: logout
            target: login
access_control:
    - { path: ^/app/_sys/, roles: ROLE_NO_ACCESS }
    - { path: ^/app/, roles: ROLE_USER }
    - { path: …
Run Code Online (Sandbox Code Playgroud)

php cookies remember-me symfony

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