完全阻止所有用户在一段时间内登录linux
例如 1000 个用户
(仅限根访问)
完全阻止所有用户在一段时间内登录linux
例如 1000 个用户
(仅限根访问)
在一篇关于 Hibernate 的文章中,我读到如果你想使用多线程,那么为每个 CRUD 操作创建一个新会话。也就是说,例如,我的 DAO 类中的保存操作如下所示:
public void save(User user) {
try (Session session = HibernateSessionFactoryUtil.getSessionFactory().openSession()) {
Transaction tx = session.beginTransaction();
session.save(user);
tx.commit();
}
}
但这就是问题所在。今天我看到另一篇文章说上面描述的动作是一种反模式。逐字:
这是一种关于在一个线程中打开和关闭对数据库的每个操作的 Session 对象的反模式。就数据库事务而言,这也是一种反模式。将您的呼叫分组到一个预定的序列中。此外,不要在每个 SQL 语句上自动提交事务。Hibernate 关闭,或期望应用程序服务器立即关闭自动提交模式。
相反,这篇文章建议Паттерн сессия-на-запрос,它被描述为:
最常见的交易模式。这里的术语“请求”应该在系统响应来自用户/客户端的一系列请求的上下文中理解。Web 应用程序是此类系统的主要示例,但它们当然不是唯一的。在请求处理开始时,应用程序打开一个 Session 对象,启动一个事务,执行所有与数据相关的工作,完成事务,并关闭 Session。该模式的本质是事务和会话之间的一对一关系。
在那之后,我出现了认知失调。首先,因为事实证明,根据这篇文章,我以前做错了,为每个操作创建一个会话,其次,因为我不明白第二种模式的含义。解释哪个是真的,哪个是假的。使用什么,忘记什么?
最近,我对奥林匹克编程很感兴趣。
我在我的第一年。
我已经学习了语言的基础知识和简单的算法。
但我不知道如何进一步发展。
教什么?
在哪里教?
在哪里可以参加?
有什么课程吗?
有什么论坛吗?
如果有人可以提供帮助,我将不胜感激。
为什么__new__在 Python 开发中需要它以及何时使用它?
关于什么是魔术方法,有一个__new__很好的评论:一个静态方法,在创建类的实例时调用。总的来说,起初他,然后__init__,我认为他理解正确。
我很惭愧地承认,但我从未在实践中看到过这种神奇方法的应用,即使在一个简单的玩具示例上它看起来也是多余的。
class Foo(object):
def __new__(cls, *args, **kwargs):
print "Creating Instance"
instance = super(Foo, cls).__new__(cls, *args, **kwargs)
return instance
def __init__(self, a, b):
self.a = a
self.b = b
def bar(self):
pass
有人可以举一个简单的例子,说明什么是有效的用途__new__,并解释为什么需要它以及何时应该使用它?
今天不得不思考git是如何存储历史的?
问题很简单,假设我创建了一个项目,将非常重的文件(2 GB)放入其中并提交。然后我从我这里删除了这些文件并再次提交。但是我可以回到之前的提交并取回这些文件,对吧?那么由此可知,在删除文件的时候,git仍然会保存它们的副本,也就是说删除重文件时,项目(文件夹本身)的权重和占用的空间不会减少吗?
但是由于某种原因,在我看来,当我克隆一个项目分支时,我并没有得到整个历史记录(例如,在我们的示例中,过去的提交和 2GB 的大文件),至少在本地,它们不在我电脑上的文件。
但毕竟,我有提交的历史,这意味着必须保存所有文件(不知何故,某处)......
简而言之,这里没有加起来。
问题是,是否保留了所有文件副本?如果该项目已有 10 年历史,并且在此期间已经删除了一百万个文件(及其权重),它们是否仍存储在 git 中的某个位置?